Nasıl düzeltilir: değerlerin uzunluğu dizin uzunluğuyla eşleşmiyor
Pandaları kullanırken karşılaşabileceğiniz bir hata:
ValueError: Length of values does not match length of index
Bu hata, bir pandas DataFrame’deki yeni bir sütuna bir dizi NumPy değeri atamaya çalıştığınızda ortaya çıkar, ancak dizinin uzunluğu, dizinin geçerli uzunluğuyla eşleşmez.
Aşağıdaki örnekte bu hatanın pratikte nasıl düzeltileceği gösterilmektedir.
Hata nasıl yeniden oluşturulur?
Aşağıdaki pandalara sahip olduğumuzu varsayalım 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
Şimdi NumPy dizisi olarak “sıçrayanlar” adında yeni bir sütun eklemeye çalıştığımızı varsayalım:
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)
Bir ValueError alıyoruz çünkü uzunluğu 3 olan bir NumPy dizisini, uzunluğu 4 olan bir DataFrame’e eklemeye çalışıyoruz.
Hata nasıl düzeltilir?
Bu hatayı düzeltmenin en kolay yolu, NumPy dizisi yerine pandas serisini kullanarak yeni bir sütun oluşturmaktır.
Varsayılan olarak panda serisinin uzunluğu DataFrame indeksinin uzunluğuna karşılık gelmiyorsa NaN değerleri girilecektir:
#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
Bir pandas serisi kullanarak “geri dönenler” sütununu başarıyla ekleyebiliriz ve eksik değerler basitçe NaN ile doldurulur.
Fillna() yöntemini kullanarak NaN değerlerini hızlı bir şekilde başka bir değere (sıfır gibi) dönüştürebileceğimizi unutmayın:
#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 değerinin sıfıra dönüştürüldüğünü unutmayın.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’daki diğer yaygın hataların nasıl düzeltileceği açıklanmaktadır:
Pandas’ta KeyError Nasıl Düzeltilir
Nasıl düzeltilir? ValueError: float NaN int’ye dönüştürülemiyor
Nasıl düzeltilir? ValueError: İşlenenler şekillerle yayınlanamadı