pandas入門 – データの削除

概要

今回はDataFrameのデータの削除方法について紹介したいと思います。カラムや行を指定してデータを削除するにはdrop()を利用します。

列を指定して列データを削除

列を指定して列データを削除するにはdrop(columns='{列名}')とします。以下の例では、DataFrameからage列を削除しています。また、drop()操作は元のデータには影響を与えないことに注意してください。

df = pd.DataFrame({
    'id': [1, 2, 3, 4, 5],
    'name': ['taro', 'takuya', 'erika', 'hanako', 'jiro'],
    'age': [20, 25, 18, 25, 25],
    'sex': ['male', 'male', 'female', 'female', 'male'],
    'height': [170, 180, 160, 165, 190]
})

df_new = df.drop(columns='age')
df_new.head()

# 	id	name	sex	height
# 0	1	taro	male	170
# 1	2	takuya	male	180
# 2	3	erika	female	160
# 3	4	hanako	female	165
# 4	5	jiro	male	190

元のdfが変化していないことを確認します。

df.head()

#	id	name	age	sex	height
# 0	1	taro	20	male	170
# 1	2	takuya	25	male	180
# 2	3	erika	18	female	160
# 3	4	hanako	25	female	165
# 4	5	jiro	25	male	190

複数の列を指定して列データを削除

複数の列を指定して列データを削除するには引数columnsにリスト型で複数の列名を指定します。以下の例ではage, sexを削除しています。

df_new = df.drop(columns=['age', 'sex'])
df_new.head()

# 	id	name	height
# 0	1	taro	170
# 1	2	takuya	180
# 2	3	erika	160
# 3	4	hanako	165
# 4	5	jiro	19

行番号を指定して行を削除する

行を削除するにはパラメータaxis=0を指定します。axis=0行方向に削除、axis=1は列方向の削除となります。デフォルトはaxix=0のため行削除の場合は省略可能です。以下の例では2行目を削除しています。

df_new = df.drop(1, axis=0)
df_new.head()

#  	id	name	age	sex	height
# 0	1	taro	20	male	170
# 2	3	erika	18	female	160
# 3	4	hanako	25	female	165
# 4	5	jiro	25	male	190

まとめ

drop()を使用したデータの削除はよく使う処理なので、繰り返し試して、データ操作に慣れるようにしましょう。