วิธีแก้ไข: ความยาวของค่าไม่ตรงกับความยาวของดัชนี
ข้อผิดพลาดที่คุณอาจพบเมื่อใช้นุ่นคือ:
ValueError: Length of values does not match length of index
ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามกำหนดค่าอาร์เรย์ของค่า NumPy ให้กับคอลัมน์ใหม่ใน DataFrame ของ pandas แต่ความยาวของอาร์เรย์ไม่ตรงกับความยาวปัจจุบันของดัชนี
ตัวอย่างต่อไปนี้แสดงวิธีการแก้ไขข้อผิดพลาดนี้ในทางปฏิบัติ
วิธีการทำซ้ำข้อผิดพลาด
สมมติว่าเรามี DataFrame แพนด้าดังต่อไปนี้:
import pandas as pd #define DataFrame df = pd. DataFrame ({' points ': [25, 12, 15, 14], ' assists ': [5, 7, 13, 12]}) #view DataFrame print (df) assist points 0 25 5 1 12 7 2 15 13 3 14 12
ตอนนี้ สมมติว่าเราพยายามเพิ่มคอลัมน์ใหม่ที่เรียกว่า “bounces” เป็นอาร์เรย์ NumPy:
import numpy as np
#attempt to add 'rebounds' column
df[' rebounds '] = np. array ([3, 3, 7])
ValueError : Length of values (3) does not match length of index (4)
เราได้รับ ValueError เนื่องจากเรากำลังพยายามเพิ่มอาร์เรย์ NumPy ที่มีความยาว 3 ให้กับ DataFrame ที่มีดัชนีความยาว 4
วิธีการแก้ไขข้อผิดพลาด
วิธีที่ง่ายที่สุดในการแก้ไขข้อผิดพลาดนี้คือเพียงสร้างคอลัมน์ใหม่โดยใช้ชุด pandas แทนที่จะเป็นอาร์เรย์ NumPy
ตามค่าเริ่มต้น หากความยาวของชุดแพนด้าไม่สอดคล้องกับความยาวของดัชนี DataFrame ค่า NaN จะถูกป้อน:
#create 'rebounds' column
df[' rebounds '] = pd. Series ([3, 3, 7])
#view updated DataFrame
df
points assists rebounds
0 25 5 3.0
1 12 7 3.0
2 15 13 7.0
3 14 12 NaN
การใช้ชุดหมีแพนด้าทำให้เราสามารถเพิ่มคอลัมน์ “ตีกลับ” ได้สำเร็จและค่าที่หายไปจะถูกเติมด้วย NaN
โปรดทราบว่าเราสามารถแปลงค่า NaN เป็นค่าอื่น (เช่นศูนย์) ได้อย่างรวดเร็วโดยใช้เมธอด fillna() ดังต่อไปนี้:
#fill in NaN values with zero
df = df. fillna (0)
#view updated DataFrame
df
points assists rebounds
0 25 5 3.0
1 12 7 3.0
2 15 13 7.0
3 14 12 0.0
โปรดทราบว่าค่า NaN ถูกแปลงเป็นศูนย์
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่นๆ ใน Python:
วิธีแก้ไข KeyError ใน Pandas
วิธีแก้ไข: ValueError: ไม่สามารถแปลง float NaN เป็น int
วิธีแก้ไข: ValueError: ตัวถูกดำเนินการไม่สามารถออกอากาศด้วยรูปร่างได้