Pandas での修正方法: keyerror: “['label'] not found in axis”


pandas の使用時に発生する可能性のあるエラーは次のとおりです。

 KeyError : "['Label'] not found in axis"

このエラーは通常、pandas DataFrame から列を削除しようとして、 axis=1の指定を忘れた場合に発生します。

デフォルトでは、 axis 引数は0に設定されており、これはラインを参照します。パンダに列を見るように指示するには、 axis=1を指定する必要があります。

次の例は、このエラーを実際に修正する方法を示しています。

エラーを再現する方法

次のパンダ データフレームがあるとします。

 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

ここで、DataFrame から「points」列を削除しようとするとします。

 #attempt to drop "points" column
df_new = df. drop (' points ')

KeyError : "['points'] not found in axis"

デフォルトでは、 drop()関数は、DataFrame の行を参照するaxis=0を使用します。

「points」という行名がないため、エラーが発生します。

エラーを修正する方法

代わりに列を参照するようにパンダに指示するには、次のようにaxis=1を指定する必要があります。

 #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

「points」列が DataFrame から削除されており、エラーは発生していないことに注意してください。

これは、 axis=1を使用したため、パンダは DataFrame からどの値を削除するかを決定するときに「ポイント」の列名を確認することを知っていたためです。

追加リソース

次のチュートリアルでは、Python の他の一般的なエラーを修正する方法を説明します。

パンダの KeyError を修正する方法
修正方法: ValueError: float NaN を int に変換できません
修正方法: ValueError: オペランドをシェイプでブロードキャストできませんでした

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です