pandasで複数の列を削除する 質問する

pandasで複数の列を削除する 質問する

次のコードを使用して、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)

インデックス オブジェクトはすでにリストのようなものとして扱われているためです。

おすすめ記事