簡體   English   中英

根據條件使用另一列的值創建新列

[英]create new column with values from another column based on condition

我有一個 dataframe

A   B   Value   FY
1   5    a     2020
2   6    b     2020
3   7    c     2021
4   8    d     2021

我想創建一個“prev_FY”列,它查看“value”列和上一年,並填充到 FY 列的當年行中; 我想要的 output 是:

A   B   Value   FY     prev_FY
1   5    a     2020    
2   6    b     2020
3   7    c     2021      a
4   8    d     2021      b

我嘗試使用pivottable ,但它不起作用,因為值與 FY 對應的值保持不變。 SHIFT function 不可行,因為我有數百萬行。

利用:

df['g'] = df.groupby('FY').cumcount()
df2 = df[['FY','Value','g']].assign(FY = df['FY'].add(1))

df = df.merge(df2, on=['FY','g'], how='left', suffixes=('','_prev')).drop('g', axis=1)
print (df)
   A  B Value    FY Value_prev
0  1  5     a  2020        NaN
1  2  6     b  2020        NaN
2  3  7     c  2021          a
3  4  8     d  2021          b

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM