Cara memperbaiki: hanya dapat membandingkan objek serial berlabel identik


Kesalahan yang mungkin Anda temui saat menggunakan pandas adalah:

 ValueError : Can only compare identically-labeled DataFrame objects

Kesalahan ini terjadi ketika Anda mencoba membandingkan dua panda DataFrames dan label indeks atau label kolom tidak cocok dengan sempurna.

Contoh berikut menunjukkan cara memperbaiki kesalahan ini dalam praktiknya.

Bagaimana cara mereproduksi kesalahan tersebut

Mari kita asumsikan kita memiliki dua panda DataFrames berikut:

 import pandas as pd

#define DataFrames
df1 = pd. DataFrame ({' points ': [25, 12, 15, 14],
                   ' assists ': [5, 7, 13, 12]})

df2 = pd. DataFrame ({' points ': [25, 12, 15, 14],
                    ' assists ': [5, 7, 13, 12]},
                     index=[3, 2, 1, 0])

#view DataFrames
print (df1)

   assist points
0 25 5
1 12 7
2 15 13
3 14 12

print (df2)

   assist points
3 25 5
2 12 7
1 15 13
0 14 12

Perhatikan bahwa label kolom cocok, namun label indeks tidak.

Jika kami mencoba membandingkan kedua DataFrame, kami akan menerima kesalahan:

 #attempt to compare the DataFrames
df1 = df2

ValueError : Can only compare identically-labeled DataFrame objects

Bagaimana cara memperbaiki kesalahan tersebut

Ada beberapa metode yang dapat kita gunakan untuk mengatasi kesalahan ini.

Metode 1: Bandingkan DataFrames (termasuk label indeks)

Kita dapat menggunakan sintaks berikut untuk membandingkan kedua DataFrame untuk melihat apakah keduanya cocok (termasuk label indeks):

 df1. equals (df2)

False

Ini memberitahu kita bahwa kedua DataFrame tidak cocok secara sempurna (termasuk label indeks).

Metode 2: Bandingkan DataFrames (Abaikan Label Indeks)

Kita dapat menggunakan sintaks berikut untuk membandingkan dua DataFrame untuk melihat apakah keduanya cocok, sambil mengabaikan label indeks:

 df1. reset_index (drop= True ). equals ( df2.reset_index (drop= True ))

True

Ini memberitahu kita bahwa kedua DataFrame sangat cocok (mengabaikan label indeks).

Metode 3: Bandingkan DataFrames baris demi baris

Kita dapat menggunakan sintaks berikut untuk membandingkan dua DataFrames baris demi baris untuk melihat nilai baris mana yang cocok:

 df1. reset_index (drop= True ) == df2. reset_index (drop= True )

      assist points
0 True True
1 True True
2 True True
3 True True

Ini memungkinkan kita melihat nilai mana yang cocok di setiap baris.

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 *