วิธีแก้ไขใน pandas: keyerror: ไม่พบ ['label'] ในแกน”


ข้อผิดพลาดที่คุณอาจพบเมื่อใช้นุ่นคือ:

 KeyError : "['Label'] not found in axis"

ข้อผิดพลาดนี้มักเกิดขึ้นเมื่อคุณพยายามลบคอลัมน์ออกจาก Pandas DataFrames และลืมระบุ axis=1

ตามค่าเริ่มต้น อาร์กิวเมนต์แกนจะถูกตั้งค่าเป็น 0 ซึ่งอ้างอิงถึงเส้น คุณต้องระบุ axis=1 เพื่อบอกให้แพนด้าดูคอลัมน์

ตัวอย่างต่อไปนี้แสดงวิธีการแก้ไขข้อผิดพลาดนี้ในทางปฏิบัติ

วิธีการทำซ้ำข้อผิดพลาด

สมมติว่าเรามี DataFrame แพนด้าดังต่อไปนี้:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' points ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

        team assists points
0 to 5 11
1 to 7 8
2 to 7 10
3 to 9 6
4 B 12 6
5 B 9 5
6 B 9 9
7 B 4 12

ตอนนี้ สมมติว่าเราพยายามลบคอลัมน์ “points” ออกจาก DataFrame:

 #attempt to drop "points" column
df_new = df. drop (' points ')

KeyError : "['points'] not found in axis"

ตามค่าเริ่มต้น ฟังก์ชัน drop() จะใช้ axis=0 ซึ่งอ้างอิงถึงแถวของ DataFrame

เนื่องจากไม่มีชื่อแถวที่เรียกว่า “คะแนน” เราจึงได้รับข้อผิดพลาด

วิธีการแก้ไขข้อผิดพลาด

หากต้องการบอกให้แพนด้าดูคอลัมน์แทน เราต้องระบุ axis=1 ดังนี้

 #drop "points" column
df_new = df. drop (' points ', axis= 1 )

#view updated DataFrame
print (df)

	team assists
0 to 5
1 to 7
2 to 7
3 to 9
4 B 12
5 B 9
6 B 9
7 B 4

โปรดทราบว่าคอลัมน์ “คะแนน” ถูกลบออกจาก DataFrame และเราไม่ได้รับข้อผิดพลาดใดๆ

เนื่องจากเราใช้ axis=1 ดังนั้นแพนด้าจึงรู้ว่าต้องดูชื่อคอลัมน์สำหรับ “จุด” เมื่อตัดสินใจว่าจะลบค่าใดออกจาก DataFrame

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่นๆ ใน Python:

วิธีแก้ไข KeyError ใน Pandas
วิธีแก้ไข: ValueError: ไม่สามารถแปลง float NaN เป็น int
วิธีแก้ไข: ValueError: ตัวถูกดำเนินการไม่สามารถออกอากาศด้วยรูปร่างได้

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *