次のコードを使用して、pandas データ フレーム内のインデックス番号で複数の列 (データ セット内の列 2 と 70、それぞれインデックスは 1 と 69) を削除しようとしています。
df.drop([df.columns[[1, 69]]], axis=1, inplace=True)
次のエラーが発生します:
TypeError: unhashable type: 'Index'
そして私のコードでは が[1, 69]
強調表示され、次のように書かれています:
Expected type 'Integral', got 'list[int]' instead
次のコードは、2 行の繰り返しコードで必要な処理を実行します (最初に列インデックス 69 を削除し、次に 1 を削除します。前の列を削除すると後の列のインデックスが変更されるため、順序は重要です)。
df.drop([df.columns[69]], axis=1, inplace=True)
df.drop([df.columns[1]], axis=1, inplace=True)
上記の最初のコード スニペットと同様に、これを 1 行で実行する方法はありますか?
ベストアンサー1
でリストにラップする必要はなく[..]
、列インデックスのサブ選択を提供するだけです。
df.drop(df.columns[[1, 69]], axis=1, inplace=True)
インデックス オブジェクトはすでにリストのようなものとして扱われているためです。