วิธีแก้ไข: valueerror: ไม่สามารถกำหนดแถวที่มีคอลัมน์ไม่ตรงกันได้


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

 ValueError : cannot set a row with mismatched columns

ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามเพิ่มแถวใหม่ให้กับ Pandas DataFrame แต่จำนวนค่าในแถวใหม่ไม่ตรงกับจำนวนคอลัมน์ใน DataFrame ที่มีอยู่

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

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

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28, 22],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4, 8],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12, 9]})

#view DataFrame
df

	team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7:28 4 12
8 I 22 8 9

ตอนนี้ สมมติว่าเราพยายามเพิ่มแถวใหม่ที่ส่วนท้ายของ DataFrame:

 #define new row to append
new_team = ['I', 30]

#append row to DataFrame
df. loc [ len (df)] = new_team

#view updated DataFrame
df

ValueError : cannot set a row with mismatched columns

เราได้รับ ValueError เนื่องจากแถวใหม่ที่เราพยายามเพิ่มมีเพียงสองค่า แต่ DataFrame ที่มีอยู่มีสี่คอลัมน์

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

วิธีที่ง่ายที่สุดในการแก้ไขข้อผิดพลาดนี้คือการใช้ฟังก์ชัน append() เพื่อเพิ่มบรรทัดใหม่ที่ส่วนท้ายของ DataFrame ซึ่งจะเติมค่าที่หายไปด้วย NaN โดยอัตโนมัติ:

ไวยากรณ์ต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ:

 #define new row to append
new = ['J', 30]

#append row to end of DataFrame
df = df. append ( pd.Series (new,index= df.columns [: len (new)]), ignore_index= True )

#view updated DataFrame
df

	team points assists rebounds
0 to 18 5.0 11.0
1 B 22 7.0 8.0
2 C 19 7.0 10.0
3 D 14 9.0 6.0
4 E 14 12.0 6.0
5 F 11 9.0 5.0
6 G 20 9.0 9.0
7:28 a.m. 4.0 12.0
8 I 22 8.0 9.0
9 D 30 NaN NaN

โปรดทราบว่าเราไม่ได้รับ ValueError ใด ๆ และมีการเพิ่มบรรทัดใหม่ต่อท้าย DataFrame

โปรดทราบว่าค่าที่หายไปสองค่าในแถวใหม่นั้นเต็มไปด้วยค่า NaN

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

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

วิธีแก้ไข: คอลัมน์ซ้อนทับกันแต่ไม่ได้ระบุส่วนต่อท้าย
วิธีแก้ไข: วัตถุ ‘numpy.ndarray’ ไม่มีแอตทริบิวต์ ‘ผนวก’
วิธีแก้ไข: หากใช้ค่าสเกลาร์ทั้งหมด คุณจะต้องผ่านดัชนี

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

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