计算两个数据帧之间的绝对差

时间:2020-02-04 04:17:43

标签: python pandas dataframe

我是熊猫新手,我想知道是否有办法在两个数据框上运行公式。

我有两个具有相同列和相同索引的df。例如每个df都像这样

x y z a 2 4 5 b 7 9 0

我想取df1,df2并找到x,y,z的绝对差,例如(df1 [n] -df2 [n] / df1 [n])* 100对于列的每个n元素,并存储结果生成新的df。

注意:我只希望差异是正数。 (误解了绝对的含义)

2 个答案:

答案 0 :(得分:1)

是的,您编写时就运行它们

绝对

(df1 - df2).abs()

(df1 -df2).div(df2) * 100

答案 1 :(得分:1)

如果使用提供的公式((df1[n]-df2[n] / df1[n]) * 100),您将得到不同的结果。您可以使用熊猫abs方法:https://docs.python.org/3/library/functions.html#abs

一些例子:

a = {'x': [2], 'y': [4], 'z': [5]}
b = {'x': [7], 'y': [9], 'z': [0]}

df1 = pd.DataFrame(a)
df2 = pd.DataFrame(b)

df_abs = abs(df1 - df2)  # Absolute difference
df_abs = (df1 - df2 / df1) * 100  # Different results