【pandas】drop() – Seriesの要素、DataFrameの行や列を削除する

pandasのSeriesオブジェクトやDataFrameオブジェクトから、特定の要素を削除するためにはdrop()というメソッドを使います。

Seriesの要素を削除する

例として、series1というSeriesを作ります。

from pandas import Series

series1 = Series(np.arange(4), index=['a', 'b', 'c', 'd'])
series1
'''
結果:
a    0
b    1
c    2
d    3
dtype: int64
'''

series1から、indexが’c’の要素を削除して新しくseries2というSeriesを作るには、drop()メソッドを使って次のように書きます。

series2 = series1.drop('c')
series2
'''
結果:
a    0
b    1
d    3
dtype: int64
'''

上記の処理を行っても、series1は変化しません。

series1
'''
結果:
a    0
b    1
c    2
d    3
dtype: int64
'''

同じindex名の要素が複数ある場合、該当する要素はすべて削除されます。

series3 = Series(np.arange(6), index=['a', 'c', 'b', 'c', 'c', 'd'])
series4 = series3.drop('c')
series4
'''
結果:
a    0
b    2
d    5
dtype: int64
'''

drop()の引数には、リストや配列(ndarray)を指定することもできます。

series5 = series1.drop(['a', 'd'])
series5
'''
結果:
b    1
c    2
dtype: int64
'''
arr = np.array(['b', 'c'])
series6 = series1.drop(arr)
series6
'''
結果:
a    0
d    3
dtype: int64
'''




DataFrameの要素(行・列)を削除する

例として、df1という4*4のDataFrameを作成します。

from pandas import DataFrame

df1 = DataFrame(np.arange(16).reshape((4, 4)),
                index=['Hotori', 'Futaba', 'Tattsun', 'Sanada'],
                columns=['a', 'b', 'c', 'd'])
df1
a b c d
Hotori 0 1 2 3
Futaba 4 5 6 7
Tattsun 8 9 10 11
Sanada 12 13 14 15

DataFrameの行を削除する

特定の行を削除するためには、drop()の引数に削除したい行のindex名を指定します。

df2 = df1.drop('Sanada')
df2
a b c d
Hotori 0 1 2 3
Futaba 4 5 6 7
Tattsun 8 9 10 11
Seriesと同様、DataFrameの場合も、もとのDataFrameであるdf1には変化はありません。

df1
a b c d
Hotori 0 1 2 3
Futaba 4 5 6 7
Tattsun 8 9 10 11
Sanada 12 13 14 15
リストや配列で複数のindexを指定できるのも、Seriesと同様です。

df3 = df1.drop(['Hotori', 'Tattsun'])
df3
a b c d
Futaba 4 5 6 7
Sanada 12 13 14 15

DataFrameの列を削除する

列(columns)を削除するためには、drop()のオプション引数としてaxis=1を指定します。axisは軸を表し、行方向の軸がaxis=0(デフォルト)、列方向の軸がaxis=1となっています。

df4 = df1.drop('b', axis=1)
df4
a c d
Hotori 0 2 3
Futaba 4 6 7
Tattsun 8 10 11
Sanada 12 14 15




コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です