我有这样的数据。
我想使用 pandas shift 并在 列 之间减去值。这是我正在使用的 code。
df['Difference'] = (df['A'] - df['A'].shift(-1))
这是我得到的输出(正如预期的那样)。
如果 index ( Id) 不同,如何防止 pandas 在 columns 之间进行减法。我只想在 index 相同时减去。我的愿望输出是这样的。使用 df.shift(-1, axis = 0) 也没有解决。
有什么建议吗?
请您参考如下方法:
可以先groupby 'id':
In [156]: df.assign(
...: new_col=df.groupby('id').diff(-1)
...: )
Out[156]:
A id new_col
0 6 1 2.0
1 4 1 -7.0
2 11 1 NaN
3 7 2 -2.0
4 9 2 -4.0
5 13 2 NaN
