PythonのPandasのpopメソッドについて

AI実装検定のご案内

目次

pop()とは?

  • 役割: DataFrame または Series から 指定した列(または要素)を取り出し、同時に削除 するメソッド
  • 特徴:
    • 戻り値として削除されたデータを返す(DataFrameではSeriesとして返る)
    • 元のオブジェクトを直接変更する(破壊的操作)
    • 複数列の削除には対応していない(1列のみ)

コード例

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メソッドについてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次