Python中两个不同数据框之间的数值差异

时间:2019-10-15 08:01:07

标签: python pandas numpy dataframe

我想找到两个不同数据框的两个或更多列之间的数值差异。

以下
Table 1
将是起始表。
此表(表2)
enter image description here

包含我需要减去到表1的单个值。

我想得到第三张表,该表可以得到表1的每一行与表2的单行之间的数值差。

3 个答案:

答案 0 :(得分:1)

尝试

df.subtract(df2.values)

df是您的起始表,而df2表2

答案 1 :(得分:1)

您可以尝试一下,看看这是否是您需要的:

import pandas as pd
df = pd.DataFrame({'A':[5, 3, 1, 2, 2], 'B':[2, 3, 4, 2, 2]})
df2 = pd.DataFrame({'A':[1], 'B':[2]})
pd.DataFrame(df.values-df2.values, columns=df.columns)
Out: 
   A  B
0  4  0
1  2  1
2  0  2
3  1  0
4  1  0

答案 2 :(得分:1)

您可以像下面这样df1-df2.values进行操作,这将使用numpy广播从所有行中减去所有df2,但df2必须仅包含一行

示例

df1 = pd.DataFrame(np.arange(15).reshape(-1,3), columns="A B C".split())

df2 = pd.DataFrame(np.ones(3).reshape(-1,3), columns="A B C".split())

df1-df2.values