目次
pop()
とは?
- 役割: DataFrame または Series から 指定した列(または要素)を取り出し、同時に削除 するメソッド
- 特徴:
- 戻り値として削除されたデータを返す(DataFrameでは
Series
として返る) - 元のオブジェクトを直接変更する(破壊的操作)
- 複数列の削除には対応していない(1列のみ)
- 戻り値として削除されたデータを返す(DataFrameでは
コード例
DataFrameから列を取り出す
import pandas as pd
df = pd.DataFrame({
"name": ["Alice", "Bob", "Charlie"],
"age": [25, 30, 35],
"city": ["Tokyo", "Osaka", "Nagoya"]
})
print("元のDataFrame:")
print(df)
# "age" 列を取り出して削除
age_col = df.pop("age")
print("\n取り出した列:")
print(age_col)
print("\n削除後のDataFrame:")
print(df)
破壊的操作の確認
import pandas as pd
df = pd.DataFrame({
"name": ["Alice", "Bob"],
"age": [25, 30]
})
print("pop前のDataFrame:")
print(df)
df.pop("age") # age列を削除
print("\npop後のDataFrame:")
print(df)
Seriesでのpop
import pandas as pd
s = pd.Series([10, 20, 30], index=["a", "b", "c"])
print("元のSeries:")
print(s)
# "b" の要素を取り出して削除
val = s.pop("b")
print("\n取り出した要素:")
print(val)
print("\n削除後のSeries:")
print(s)
他の削除方法との比較(drop
, del
)
import pandas as pd
df = pd.DataFrame({
"name": ["Alice", "Bob", "Charlie"],
"age": [25, 30, 35],
"city": ["Tokyo", "Osaka", "Nagoya"]
})
print("元のDataFrame:")
print(df)
# --- pop ---
age_series = df.pop("age")
print("\n--- popで削除した列 ---")
print(age_series)
print("\npop後のDataFrame:")
print(df)
# --- drop ---
df2 = pd.DataFrame({
"name": ["Alice", "Bob", "Charlie"],
"age": [25, 30, 35],
"city": ["Tokyo", "Osaka", "Nagoya"]
})
df_dropped = df2.drop("age", axis=1) # 新しいDataFrameを返す
print("\n--- dropで削除した結果(新しいDataFrame) ---")
print(df_dropped)
print("\ndrop後、元のDataFrameはそのまま:")
print(df2)
# --- del ---
df3 = pd.DataFrame({
"name": ["Alice", "Bob", "Charlie"],
"age": [25, 30, 35],
"city": ["Tokyo", "Osaka", "Nagoya"]
})
del df3["age"]
print("\n--- delで削除後のDataFrame ---")
print(df3)
まとめ
- pop: 列を「取り出して削除」できる(戻り値あり)
- drop: 複数列削除に対応、新しいDataFrameを返す(元のDFは変更なし)
- del: 列を削除するが、戻り値は返さない
- Series.pop: 辞書のように要素を削除して返す
以上、PythonのPandasのpopメソッドについてでした。
最後までお読みいただき、ありがとうございました。