Cara memperbaiki di pandas: keyerror: “['label'] tidak ditemukan di axis”
Kesalahan yang mungkin Anda temui saat menggunakan pandas adalah:
KeyError : "['Label'] not found in axis"
Kesalahan ini biasanya terjadi ketika Anda mencoba menghapus kolom dari pandas DataFrames dan lupa menentukan axis=1 .
Secara default, argumen sumbu diatur ke 0 , yang mengacu pada garis. Anda perlu menentukan axis=1 untuk memberi tahu panda agar melihat kolom.
Contoh berikut menunjukkan cara memperbaiki kesalahan ini dalam praktiknya.
Bagaimana cara mereproduksi kesalahan tersebut
Misalkan kita memiliki panda DataFrame berikut:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' points ': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame print (df) team assists points 0 to 5 11 1 to 7 8 2 to 7 10 3 to 9 6 4 B 12 6 5 B 9 5 6 B 9 9 7 B 4 12
Sekarang anggaplah kita mencoba menghapus kolom “poin” dari DataFrame:
#attempt to drop "points" column
df_new = df. drop (' points ')
KeyError : "['points'] not found in axis"
Secara default, fungsi drop() menggunakan axis=0 , yang merujuk ke baris DataFrame.
Karena tidak ada nama baris yang disebut “poin”, kami menerima kesalahan.
Bagaimana cara memperbaiki kesalahan tersebut
Untuk memberitahu panda agar melihat kolomnya, kita perlu menentukan axis=1 sebagai berikut:
#drop "points" column
df_new = df. drop (' points ', axis= 1 )
#view updated DataFrame
print (df)
team assists
0 to 5
1 to 7
2 to 7
3 to 9
4 B 12
5 B 9
6 B 9
7 B 4
Perhatikan bahwa kolom “poin” telah dihapus dari DataFrame dan kami tidak menerima kesalahan apa pun.
Ini karena kami menggunakan axis=1 , jadi panda tahu cara melihat nama kolom untuk “titik” saat memutuskan nilai mana yang akan dihapus dari DataFrame.
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