[英]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.