繁体   English   中英

如何在 pandas 中减去两个相同的数据帧

[英]How to subtract two identical dataframes in pandas

我在 pandas/python(a 和 b)中有两个相同的数据框,只有值不同:

A:

date       a1 a2 a3
01.01.2020 2  2  2
02.01.2020 3  3  3
03.01.2020 4  4  4

乙:

date       a1 a2 a3
01.01.2020 1  1  1
01.01.2020 2  2  2
01.01.2020 3  3  3

我需要 a - b 并希望看到结果 c:

date       a1 a2 a3
01.01.2020 1  1  1
01.01.2020 1  1  1
01.01.2020 1  1  1

a - b 不起作用,我不知道怎么做。 你能帮帮我吗? 谢谢!

您可以set_index

new_df = (a.set_index('date') - b.set_index('date')).reset_index()

但是,只有当您的日期在两个数据框之间相同并且每个数据框内不同时,这才有效。

在另一种情况下(如您的示例数据所示),您可以执行以下操作:

c = b.copy()
c.iloc[:,1:] = a.iloc[:, 1:] - b.iloc[:,1:]

尝试使用df1.subtract(df2) 简单而优雅。

假设两个数据框中的日期相同,您可以使用df.sub

df = a.set_index('date').sub(b.set_index('date')).reset_index()

Output:

         date  a1  a2  a3
0  01.01.2020   1   1   1
1  01.01.2020   1   1   1
2  01.01.2020   1   1   1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM