两行熊猫之间的差异

时间:2018-03-08 06:13:49

标签: python pandas difference subtraction

我有一个数据框:

id|amount|date
20|-7|2017:12:25
20|-170|2017:12:26
20|7|2017:12:27

我想从另一行中减去每一行的数量'柱:

输出应该是:

id|amount|date|amount_diff
20|-7|2017:12:25|0
20|-170|2017:12:26|-177
20|7|2017:12:27|-163
我使用了代码:

df.sort_values(by='date',inplace=True)

df['amount_diff'] = df['invoice_amount'].diff()

并获得输出:

id|amount|date|amount_diff
20|-7|2017:12:25|163
20|-170|2017:12:26|-218
20|48|2017:12:27|0

1 个答案:

答案 0 :(得分:1)

你需要的IIUC:

df.sort_values(by='date',inplace=True)
df['amount_diff'] = df['amount'].add(df['amount'].shift()).fillna(0)
print (df)
   id  amount        date  amount_diff
0  20      -7  2017:12:25          0.0
1  20    -170  2017:12:26       -177.0
2  20       7  2017:12:27       -163.0

因为如果想减去你的解决方案应该工作:

df.sort_values(by='date',inplace=True)
df['amount_diff1'] = df['amount'].sub(df['amount'].shift()).fillna(0)
df['amount_diff2'] = df['amount'].diff().fillna(0)
print (df)
   id  amount        date  amount_diff1  amount_diff2
0  20      -7  2017:12:25           0.0           0.0
1  20    -170  2017:12:26        -163.0        -163.0
2  20       7  2017:12:27         177.0         177.0
相关问题