[Pythonデータ分析]Dataframeで行・列を削除する方法

Python プログラミング

こんにちは。kakeです。

Pythonでデータ分析をする時に欠かせないPandasというライブラリのDataframeがあります。

そして、行、列を丸っと削除したい時の操作を備忘録的に残しておきます!

本記事の内容

[Pythonデータ分析]Dataframeで行・列を削除する方法

[Pythonデータ分析]Dataframeで行・列を削除する方法

それではjupyter notebookの画像も載せつつ解説していきます。

Dataframeで行を削除する方法

早速解説していきます。

  • 行の名前を指定する場合
  • 行の番号を指定する場合
  • 複数行を指定する場合

この3つに関して書いていきます。

まずは、DataFrameを用意します。

以下のようなDataFrameを用意しました。

import pandas as pd
df = pd.DataFrame(data=[[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15]],index=['A','B','C','D','E'], columns=['1st','2st','3st'])
df

行の名前を指定する場合

まずは名前を指定する場合です。

使うメソッドはdropメソッドです。

「B」という名前の行を消してみます。

df.drop('B')

これで「B」という行が消せました。簡単でした。

行の番号を指定する場合

次に行番号で指定する場合です。

使うメソッドはもちろんdropメソッドです!

0行目を削除してみます。

df.drop(df.index[0])

こんな感じです。dropメソッドの引数にdfのindex番号を指定してあげればオッケーです。簡単ですね。

複数行を指定する場合

これまで一行一行でしたが、まとめて複数行を削除したい場合もあります。

  • 名前を指定する場合
  • 行番号を指定する場合

✔︎名前を指定する場合

‘B’と’D’の行を削除する

df.drop(['B','D'])

このように辞書型で指定してあげればオッケーです。

✔︎行番号を指定する場合

‘Aと’C’と’D’の行を削除する

df.drop(df.index[[0,2,3]])

[]の中に[]にしておくことに注意です!

Dataframeで列を削除する方法

次は列です。

  • 列の名前を指定する場合
  • 列の番号を指定する場合
  • 複数列を指定する場合

この3つについて順に解説していきます。

列の名前を指定する場合

列でも同じようにdropメソッドを使います。

2種類方法があります。

①columns=’名前’ で指定する場合

‘1st’の列を削除する

df.drop(columns='1st')

このようにcolumns=’名前’としてあげれば列を消せます。

②axis=1とする場合

‘1st’の列を削除する

df.drop('1st', axis=1)

axisという引数がdropメソッドにあって、axis=1とすれば列を指定することができます。ちなみにデフォルトではaxis=0となっていて行を指定しています。

列の番号を指定する場合

次は列の番号を指定する場合です。

‘2st’の列を削除する

df.drop(df.columns[1], axis=1)

行を削除した時と同じような感じでdfのcolumnsで番号を指定してあげればオッケーです。こちらも注意としてaxis=1を引数に入れてあげましょう。

複数列を指定する場合

複数列の場合も示しておきます。

  • 名前を指定する場合
  • 列番号を指定する場合

✔︎名前を指定する場合

‘1st’と’2st’を削除する

df.drop(['1st','2st'],axis=1)

辞書型で指定してaxis=1を入れてあげればオッケーです。

✔︎列番号を指定する場合

‘1st’と’2st’を削除する

df.drop(df.columns[[0,1]],axis=1)

もうわかってきたと思いますが、このようにcolumnsで指定です!

[Python]DataFrameで行や列を削除して、更新させる方法

[Python]DataFrameで行や列を削除して、更新させる方法
Cropped view of person hands typing on laptop computer

さて、ここまでDataFrameで行や列を削除してきました。しかし、一度削除してもう一回「df」と入力して出力を見ると変わっていないんです。

以下の画像みてください。

削除したはずの列が再出力でまた復活しています。

ここではこれを直していきます。

結論をいうと、以下の通りです。

dropメソッドの引数にinplace=Trueを加えてあげる

画像で確認してみましょう。

df.drop(df.columns[[0,1]],axis=1, inplace=True)

ちゃんと再出力でも列を消した後のDataFrameになっていますね!覚えておきましょう。

人気記事 [無料あり]Python・AI(人工知能)を学習するためのプログラミングスクール3選