按组添加具有先前值的列
Add column with previous values by group
我得到了以下数据框:
lst=[['01012021','A',10],['01012021','B',20],['02012021','A',12],['02012021','B',23]]
df2=pd.DataFrame(lst,columns=['Date','FN','AuM'])
我想通过 FN 添加一个包含先前值的列。结果我应该得到以下数据框:
df2=pd.DataFrame(lst,columns=['Date','FN','AuM','PreviousValues'])
你能帮帮我吗?
您是指 FN 的先前值吗?如果是这样,请尝试使用
df2['PreviousValues'] = df2['FN'].shift(1)
使用shift
df2['PreviousValues'] = df2['FN'].shift()
输出:
Date FN AuM PreviousValues
0 01012021 A 10 NaN
1 01012021 B 20 A
2 02012021 A 12 B
3 02012021 B 23 A
正如其他答案指出的那样,shift
可用于获取相邻值,但我认为您的意图是使用某个分组内的先前值。如果是这种情况,请在 shift
.
之前使用 groupby
df2['PreviousValues'] = df2.groupby('FN')['AuM'].shift()
Date FN AuM PreviousValues
0 01012021 A 10 NaN
1 01012021 B 20 NaN
2 02012021 A 12 10.0
3 02012021 B 23 20.0
我得到了以下数据框:
lst=[['01012021','A',10],['01012021','B',20],['02012021','A',12],['02012021','B',23]]
df2=pd.DataFrame(lst,columns=['Date','FN','AuM'])
我想通过 FN 添加一个包含先前值的列。结果我应该得到以下数据框:
df2=pd.DataFrame(lst,columns=['Date','FN','AuM','PreviousValues'])
你能帮帮我吗?
您是指 FN 的先前值吗?如果是这样,请尝试使用
df2['PreviousValues'] = df2['FN'].shift(1)
使用shift
df2['PreviousValues'] = df2['FN'].shift()
输出:
Date FN AuM PreviousValues
0 01012021 A 10 NaN
1 01012021 B 20 A
2 02012021 A 12 B
3 02012021 B 23 A
正如其他答案指出的那样,shift
可用于获取相邻值,但我认为您的意图是使用某个分组内的先前值。如果是这种情况,请在 shift
.
groupby
df2['PreviousValues'] = df2.groupby('FN')['AuM'].shift()
Date FN AuM PreviousValues
0 01012021 A 10 NaN
1 01012021 B 20 NaN
2 02012021 A 12 10.0
3 02012021 B 23 20.0