将差异列添加到现有df

时间:2018-01-20 01:17:39

标签: pandas difference

我的目标是添加显示以前列之间差异的列

DF

Name 0  1  2   
A    3  1  0
B    5  4  1

结果:

Name 0  1  2  d1        d2 
A    3  1  0  2 (=3-1)  1 (=1-0)
B    5  4  1  1 (=5-4)  3 (=4-1)

我正在考虑创建一个新的df来查找计算差异,然后将其添加回原始df,但由于仍然需要使用原始数据,因此无法解决问题。有更好的方法吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

使用diff

df = df.set_index('Name')
df[['d1','d2']] = -df.diff(axis=1).iloc[:, 1:]

df.reset_index()

Name  0  1  2   d1   d2
A     3  1  0  2.0  1.0
B     5  4  1  1.0  3.0

答案 1 :(得分:1)

npm install --save @angular/cli@latest
  • .shift(),将索引向下移动,这样当你减去行时,它们会以正确的顺序执行此操作
  • 减去然后重新组合

答案 2 :(得分:1)

我们也可以先用列名选择列。最后做减法。

df[['d1','d2']] = df[["0", "1"]] - df[["1", "2"]].values

    Name 0  1   2   d1  d2
    A   3   1   0   2   1
    B   5   4   1   1   3

(我们需要.values仅提取值并忽略其列名。您可以在没有.values的情况下尝试使用。)