Cara memperbaiki: tidak dapat membandingkan array bertipe [float64] dengan tipe skalar [bool]


Kesalahan yang mungkin Anda temui saat menggunakan pandas adalah:

 TypeError : cannot compare a dtyped [object] array with a scalar of type [bool]

Kesalahan ini biasanya terjadi ketika Anda mencoba membuat subset DataFrame berdasarkan beberapa kondisi dan gagal menempatkan tanda kurung di sekitar masing-masing kondisi.

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', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'C', 'G', 'F', 'F', 'C'],
                   ' points ': [21, 30, 26, 29, 14, 29, 22, 16]})

#view DataFrame
print (df)

  team position points
0 AG 21
1 AG 30
2 AF26
3AC 29
4 BG 14
5 BF 29
6 BF 22
7 BC 16

Sekarang anggaplah kita mencoba menggunakan fungsi .loc untuk hanya menampilkan baris-baris di mana tim sama dengan “A” dan posisi sama dengan “G”:

 #attempt to only show rows where team='A' and position='G'
df. loc [df. team == ' A ' & df. position == ' G ']

TypeError : cannot compare a dtyped [object] array with a scalar of type [bool]

Kami menerima ValueError karena kami tidak menempatkan tanda kurung di sekitar kondisi individual.

Karena operator & lebih diutamakan daripada operator == , panda gagal menafsirkan pernyataan ini dalam urutan yang benar.

Bagaimana cara memperbaiki kesalahan tersebut

Cara termudah untuk memperbaiki kesalahan ini adalah dengan menambahkan tanda kurung di sekitar kondisi individual sebagai berikut:

 #only show rows where team='A' and position='G'
df. loc [(df. team == ' A ') & (df. position == ' G ')]

	team position points
0 A G 21
1 A G 30

Perhatikan bahwa kami tidak menerima ValueError apa pun dan kami berhasil membuat subset DataFrame.

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: Anda mencoba menggabungkan objek dan kolom int64
Cara Memperbaiki: Tidak dapat menentukan baris dengan kolom yang tidak cocok

Tambahkan komentar

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