【Python】pandasのデータフレームで行・列を削除する方法

こんにちは、今回はpandasのDataFrameで行や列を削除する方法を解説していきます。

方法はたくさんありますが、それぞれの役割やメリットを確認しながら基本的なポイントを押さえていきましょう。

行・列の削除に使える関数

関数処理
df.pop(列名)1列を削除する。行は削除できない。
del df[列名] 複数列を削除できる。行は削除できない。
df.drop()複数行・列を削除できる
【関連記事】dropの条件や複数削除・消えない理由
df.dropna()NaNのセルがある行・列を削除
【関連記事】dropnaの使い方まとめ
df.drop_duplicates()重複列の削除
詳細は別記事で

行や列の削除だけでもたくさんの関数がありますが、今回はpop、del、dropの3つに関して見ていきましょう。

以下では次のDataFrameに対して処理を行っていきます。

データフレーム

列の削除

1列を削除する

  1. popに列名を渡す。
  2. del文にDataFrameの列を渡す。
  3. dropに「columns=列名」を渡す。
  4. dropに「列名, axis=1」を渡す。

列col1を削除する方法を4通りで書いています。列を削除したい場合はどれか一つの方法を実行していください。

列を削除したデータフレーム
col1を削除
  • ③、➃のdropにある「inplace=True」は元のDataFrameを変更するという意味です。デフォルトではFalseになっているので、元のDataFrameは変更されません。
  • axis=1で列、axis=0で行を指定します。
  • inplaceやaxisなどのdropの引数の詳しい解説はコチラの記事にまとめています。

複数列を削除する

  1. del文に列をカンマ区切りで渡す。
  2. dropに列名をリストで指定する。
  3. dropの「列名のリスト, axis=1」を渡す。
  4. popは使えない。
複数列を削除したデータフレーム
col1とcol2を削除

②、③のinplaceやaxisは上で説明した通りです。詳しくはコチラの記事にまとめています。

行の削除

1行を削除する

  1. dropに行名を渡す。
    1. 行名の場合は軸axisなしでOK
  2. dropに「index=行名」を渡す。
列を削除したデータフレーム
row1を削除

複数行を削除する

  1. dropに行名をリストで渡す。
    1. 行名の場合は軸axisなしでOK
  2. dropに「index=行名のリスト」を渡す。
row1とrow2を削除

行と列を同時に削除する

  • dropにindex(行名)とcolumns(列名)を指定
行列を同時に削除したデータフレーム
col2,row1,row2を削除

まとめ

いかがでしたか。今回はDataFrameの行や列を削除する方法を紹介していきました。

たくさん方法がありますが、より細かい設定をしたい場合はdropでお手軽に削除したいならpopやdelでも十分対応可能ですね。

最新情報をチェックしよう!