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

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir