Cara memperbaiki: panjang nilai tidak sesuai dengan panjang indeks


Kesalahan yang mungkin Anda temui saat menggunakan pandas adalah:

 ValueError: Length of values does not match length of index

Kesalahan ini terjadi saat Anda mencoba menetapkan array nilai NumPy ke kolom baru di pandas DataFrame, tetapi panjang array tidak sesuai dengan panjang indeks saat ini.

Contoh berikut menunjukkan cara memperbaiki kesalahan ini dalam praktiknya.

Bagaimana cara mereproduksi kesalahan tersebut

Misalkan kita memiliki panda DataFrame berikut:

 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

Sekarang katakanlah kita mencoba menambahkan kolom baru bernama “bounce” sebagai array NumPy:

 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)

Kami menerima ValueError karena kami mencoba menambahkan array NumPy dengan panjang 3 ke DataFrame yang memiliki indeks panjang 4 .

Bagaimana cara memperbaiki kesalahan tersebut

Cara termudah untuk memperbaiki kesalahan ini adalah dengan membuat kolom baru menggunakan seri pandas, bukan array NumPy.

Secara default, jika panjang rangkaian pandas tidak sesuai dengan panjang indeks DataFrame maka nilai NaN akan dimasukkan:

 #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

Dengan menggunakan rangkaian pandas kita berhasil menambahkan kolom “pentalan” dan nilai yang hilang cukup diisi dengan NaN.

Perhatikan bahwa kita dapat dengan cepat mengonversi nilai NaN ke nilai lain (seperti nol) menggunakan metode fillna() sebagai berikut:

 #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

Perhatikan bahwa nilai NaN telah diubah menjadi nol.

Sumber daya tambahan

Tutorial berikut menjelaskan cara memperbaiki kesalahan umum lainnya dengan Python:

Cara Memperbaiki KeyError di Pandas
Cara Memperbaiki: ValueError: Tidak dapat mengubah float NaN menjadi int
Cara Memperbaiki: ValueError: Operan tidak dapat disiarkan dengan bentuk

Tambahkan komentar

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