我有这样一个数据帧
ID col1 col2
A 2018/07/01 3
A 2018/08/01 5
A 2018/10/01 10
B 2018/07/01 4
B 2018/10/01 7
B 2019/01/01 9
B 2019/04/01 12
C 2018/07/01 6
C 2018/09/01 5
C 2018/10/01 7
我试图创建一个新的列col3
,该列的计算方法是col2
为每个ID减去3个月后的值。你知道吗
结果会是
ID col1 col2 col3
A 2018/07/01 3 -7
A 2018/08/01 5 NaN
A 2018/10/01 10 NaN
B 2018/07/01 4 -3
B 2018/10/01 7 -2
B 2019/01/01 9 -3
B 2019/04/01 12 NaN
C 2018/07/01 6 -1
C 2018/09/01 5 NaN
C 2018/10/01 7 NaN
如果3个月后没有找到每个ID的月份,则返回NaN。你知道吗
按理说,使用
shift(freq='-3M')
很容易,但不知何故,这对月初不起作用。所以我们可以:输出:
您可以在数据帧组中使用“重新索引”(无重采样和无移位):
输出:
按ID分组,并将日期列设置为索引并重新采样。然后换-3档。你知道吗
在:
输出:
相关问题 更多 >
编程相关推荐