我目前正在使用 pandas 并且有一个 df 目前看起来像这样: LOCATION TIME Value 0 AUS 2000 33.595673 1 AUS 2001 57.8623622 AUS 2002 58.5886083 UK 2000 61.74 UK 2001 63.2432325 UK 2002 66.235122我想添加另一列,列出值列中后续行之间的差异,但希望它在 LOCATION 更改时重新启动。所以基本上它应该在上面的例子中的第 2 行和第 3 行之间重新开始
2 回答
喵喵时光机
TA贡献1846条经验 获得超7个赞
df['valuedif']=df[['LOCATION', 'TIME', 'Value']].groupby('LOCATION').Value.apply(lambda x: x.diff())
print(df)
LOCATION TIME Value valuedif
0 AUS 2000 33.595673 NaN
1 AUS 2001 57.862362 24.266689
2 AUS 2002 58.588608 0.726246
3 UK 2000 61.700000 NaN
4 UK 2001 63.243232 1.543232
5 UK 2002 66.235122 2.991890
牛魔王的故事
TA贡献1830条经验 获得超3个赞
如果我正确理解你在寻找什么,解决方案是:
df.groupby("LOCATION").diff()
输出是:
TIME Value
0 NaN NaN
1 1.0 24.266689
2 1.0 0.726246
3 NaN NaN
4 1.0 1.543232
5 1.0 2.991890
添加回答
举报
0/150
提交
取消