![](/img/trans.png)
[英]Creating a new column based on condition with values from another column in python
[英]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.