1. ホーム
  2. python

[解決済み] Pythonを使用してデータフレームから複数の列を削除する

2022-03-02 14:39:49

質問

Pythonを使用してデータフレームから列を削除する方法を知っています。しかし、私の問題のために、データセットは膨大であり、私がドロップしたい列は一緒にグループ化されているか、基本的に列の見出し軸にまたがって単一に広がっています。私が行った方法のように書き出すのではなく、より少ないコード行数ですべての列をスライスまたはドロップする短い方法はありますか?私がここで行った方法は機能しますが、私はより要約された方法を希望します。

flight_data_copy_final が格納されるべき変数です。

以下は私のコードです。

from IPython.display import display

flight_data_copy_version1 = flight_data_copy.drop(flight_data_copy.ix[:,"Year": "FlightDate"].columns, axis=1)
flight_data_copy_version2 = flight_data_copy_version1.drop("TailNum", axis=1)
flight_data_copy_version3 = flight_data_copy_version2.drop("OriginStateFips", axis=1)
flight_data_copy_version4 = flight_data_copy_version3.drop("DestStateFips", axis=1)
flight_data_copy_version5 = flight_data_copy_version4.drop("Diverted", axis=1)
flight_data_copy_version6 = flight_data_copy_version5.drop("Flights", axis=1)
flight_data_copy_final = flight_data_copy.drop(flight_data_copy_version6.ix[:,"FirstDepTime":].columns, axis=1)

print (display (flight_data_copy_final))

解決方法は?

pandasで複数のカラムを同時に削除するには、以下のようにカラム名を指定する方法があります。オプションの inplace=True は、同じデータフレームで変更の影響を受ける列が欲しい場合に必要です。そうでなければ削除してください。

flight_data_copy.drop(['TailNum', 'OriginStateFips', 
                'DestStateFips', 'Diverted'], axis=1, inplace=True)

出典 Python Pandas - 一度のコマンドでデータフレームから複数の系列を削除する