Skip to main content
 首页 » 编程设计

python之如果索引不同,如何停止在 Pandas 中移动列

2025年05月04日9tintown

我有这样的数据。

.

我想使用 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