• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

pandas shift

date: 2023-08-19 excerpt: pandasのshift関数の使い方

tag: pythonpandasshift


pandasのshift関数の使い方

概要

  • レコードをずらす操作
  • ずらして参照されない値はNaTやnullが入る
    • 値の補完にはbfill, ffill関数が使える
      • bfillは後方の有効な値を探して補完
      • ffillは前方の有効な値を探して補完

具体例

df = pd.DataFrame(dict(
    A=["a", "b", "c"],
    B=[1, 2, 3]
))
df["B+1"] = df["B"].shift(+1).bfill()
display(df)
index A B B+1
0 a 1 1.0
1 b 2 1.0
2 c 3 2.0

groupbyと組み合わせて使用する

df = pd.DataFrame(dict(
    A=["a", "a", "a", "b", "b", "b", "c", "c", "c"],
    B=[1, 2, 3, 11, 12, 13, 21, 22, 23]
))

df["B_A_shift"] = df.groupby("A")["B"].shift(+1).bfill()
display(df)
index A B B_A_shift
0 a 1 1.0
1 a 2 1.0
2 a 3 2.0
3 b 11 11.0
4 b 12 11.0
5 b 13 12.0
6 c 21 21.0
7 c 22 21.0
8 c 23 22.0

Google Colab

  • pandas-shift-bfill-ffill-example


pythonpandasshift Share Tweet