Nasıl düzeltilir? valueerror: eşleşmeyen sütunlara sahip bir satır tanımlanamıyor
Pandaları kullanırken karşılaşabileceğiniz bir hata:
ValueError : cannot set a row with mismatched columns
Bu hata, pandas DataFrame’e yeni bir satır eklemeye çalıştığınızda ancak yeni satırdaki değerlerin sayısı mevcut DataFrame’deki sütun sayısıyla eşleşmediğinde ortaya çıkar.
Aşağıdaki örnekte bu hatanın pratikte nasıl düzeltileceği gösterilmektedir.
Hata nasıl yeniden oluşturulur?
Aşağıdaki pandaları DataFrame oluşturduğumuzu varsayalım:
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
Şimdi DataFrame’in sonuna yeni bir satır eklemeye çalıştığımızı varsayalım:
#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
Eklemeye çalıştığımız yeni satırın yalnızca iki değeri olması, ancak mevcut DataFrame’in dört sütunu olması nedeniyle ValueError alıyoruz.
Hata nasıl düzeltilir?
Bu hatayı düzeltmenin en kolay yolu, eksik değerleri otomatik olarak NaN ile dolduracak olan yeni satırı DataFrame’in sonuna eklemek için apend() işlevini kullanmaktır:
Aşağıdaki sözdizimi bu işlevin pratikte nasıl kullanılacağını gösterir:
#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
Herhangi bir ValueError almadığımızı ve yeni satırın DataFrame’in sonuna eklendiğini unutmayın.
Ayrıca yeni satırdaki iki eksik değerin basitçe NaN değerleriyle doldurulduğunu 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:
Nasıl düzeltilir? Sütunlar çakışıyor ancak son ek belirtilmemiş
Nasıl düzeltilir: ‘numpy.ndarray’ nesnesinin ‘append’ özelliği yok
Nasıl düzeltilir? Tüm skaler değerleri kullanıyorsanız bir dizin iletmeniz gerekir