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

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

それぞれの役割やメリットを確認しながら基本的なポイントを押さえていきましょう。

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

関数処理
df.pop(列名)1列を削除する。行は削除できない。
del df[列名] 複数列を削除できる。行は削除できない。
df.drop()複数行・列を削除できる
【関連記事】dropの条件や複数削除・消えない理由
df.dropna()NaNのセルがある行・列を削除
【関連記事】dropnaの使い方まとめ
df.drop_duplicates()重複列の削除
【関連記事】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は上で説明した通りです。

詳しくは以下の記事にまとめています。

関連記事

こんにちは、今回はdrop関数に関して詳しくまとめていきたいと思います。 DataFrameの整形で非常に役に立つ関数なのでぜひ使い来ないしたいですね。 特に、dropを使ったのに削除できなかったときの対処法も書いています。 […]

行の削除

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でも十分対応可能ですね。