我是熊猫新手,我想知道是否有办法在两个数据框上运行公式。
我有两个具有相同列和相同索引的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。
注意:我只希望差异是正数。 (误解了绝对的含义)
答案 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