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