Pandasのdrop
メソッドを使用すると、データフレームから指定した行または列を削除できます。
以下に使い方の詳細を説明します。
行を削除する
行を削除する場合、axis=0
を指定します(デフォルト)。
構文
df.drop(labels, axis=0, inplace=False)
- labels
削除する行ラベル(インデックス)。 - axis
行の場合は0
(省略可能)。 - inplace
Trueの場合、元のデータフレームを直接変更。
例
import pandas as pd
# サンプルデータフレーム
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data, index=['row1', 'row2', 'row3'])
# 'row2'を削除
df_dropped = df.drop('row2')
print(df_dropped)
出力
A B
row1 1 4
row3 3 6
列を削除する
列を削除する場合、axis=1
を指定します。
構文
df.drop(labels, axis=1, inplace=False)
例
# 'B'列を削除
df_dropped = df.drop('B', axis=1)
print(df_dropped)
出力
A
row1 1
row2 2
row3 3
複数の行または列を削除する
リストで指定することで、複数の行や列を削除できます。
複数行の削除
# 'row1'と'row3'を削除
df_dropped = df.drop(['row1', 'row3'])
print(df_dropped)
出力
A B
row2 2 5
複数列の削除
# 'A'と'B'列を削除
df_dropped = df.drop(['A', 'B'], axis=1)
print(df_dropped)
出力
Empty DataFrame
Columns: []
Index: [row1, row2, row3]
元のデータフレームを変更する
inplace=True
を指定すると、元のデータフレームが直接変更されます。
例
df.drop('row2', inplace=True)
print(df)
出力:
A B
row1 1 4
row3 3 6
エラーを避ける(存在しないラベルを無視)
削除対象が存在しない場合、errors='ignore'
を指定するとエラーを避けられます。
例
# 存在しない行を無視
df_dropped = df.drop('row4', errors='ignore')
print(df_dropped)
条件に基づいて行を削除する
条件に一致する行を削除するには、drop
メソッドではなくloc
やフィルタリングを使います。
例
# 列'A'が2以上の行を削除
df_filtered = df[df['A'] < 2]
print(df_filtered)
出力
A B
row1 1 4
まとめ
- 行を削除:
drop('ラベル', axis=0)
- 列を削除:
drop('ラベル', axis=1)
- 複数削除: ラベルをリストで指定
- 元データを変更:
inplace=True
- 存在しないラベルのエラー回避:
errors='ignore'