Cara memperbaiki: valueerror: tidak dapat menentukan baris dengan kolom yang tidak cocok


Kesalahan yang mungkin Anda temui saat menggunakan pandas adalah:

 ValueError : cannot set a row with mismatched columns

Kesalahan ini terjadi ketika Anda mencoba menambahkan baris baru ke DataFrame pandas tetapi jumlah nilai di baris baru tidak sesuai dengan jumlah kolom di DataFrame yang ada.

Contoh berikut menunjukkan cara memperbaiki kesalahan ini dalam praktiknya.

Bagaimana cara mereproduksi kesalahan tersebut

Misalkan kita membuat DataFrame panda berikut:

 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

Sekarang misalkan kita mencoba menambahkan baris baru di akhir 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

Kami menerima ValueError karena baris baru yang kami coba tambahkan hanya memiliki dua nilai, namun DataFrame yang ada memiliki empat kolom.

Bagaimana cara memperbaiki kesalahan tersebut

Cara termudah untuk memperbaiki kesalahan ini adalah dengan menggunakan fungsi append() untuk menambahkan baris baru di akhir DataFrame, yang secara otomatis akan mengisi nilai yang hilang dengan NaN:

Sintaks berikut menunjukkan cara menggunakan fungsi ini dalam praktik:

 #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

Perhatikan bahwa kami tidak menerima ValueError apa pun dan baris baru telah ditambahkan ke akhir DataFrame.

Perhatikan juga bahwa dua nilai yang hilang di baris baru hanya diisi dengan nilai NaN.

Sumber daya tambahan

Tutorial berikut menjelaskan cara memperbaiki kesalahan umum lainnya dengan Python:

Cara Memperbaiki: Kolom tumpang tindih tetapi tidak ada akhiran yang ditentukan
Cara Memperbaiki: Objek ‘numpy.ndarray’ tidak memiliki atribut ‘append’
Cara memperbaiki: Jika Anda menggunakan semua nilai skalar, Anda harus meneruskan indeks

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *