首页 > 解决方案 > 从连续行中的两个不同列中减去两个时间戳

问题描述

所以我有一个像这样的熊猫数据框

   a  b
0  1  3
1  7  8
2  11 3
3  9  1

我想用前一个索引从 a 列中减去 b 列,例如 b[1] = 8 和 a[0] = 1,然后 b[1] - a[0] = 7,这将在c[1]

   a  b  c
0  1  3  -
1  7  8  7
2  11 3  -4
3  9  1  -10

我该怎么做?感谢您的时间和帮助:)

标签: pythonpython-3.xpandasdataframe

解决方案


Series.sub与移位值一起使用Series.shift

df['c'] = df['b'].sub(df['a'].shift())
print (df)
   a  b     c
0   1  3   NaN
1   7  8   7.0
2  11  3  -4.0
3   9  1 -10.0

对于integer na通过转换为使用的整数Int64

df['c'] = df['b'].sub(df['a'].shift(1)).astype('Int64')
print (df)
    a  b     c
0   1  3  <NA>
1   7  8     7
2  11  3    -4
3   9  1   -10

推荐阅读