如何逐个单元地比较两个数据帧?

时间:2016-02-22 13:32:55

标签: python pandas

我有两个数据帧,包含来自单个源(csv)不同部分的corr()的结果。现在我想比较两个数据帧中的所有值,以检查它们是否相等,或者即使它们落在特定范围内。所以puseudo代码就像是:

df1['column1']['row1'] == df2['column1']['row1']

在熊猫中有一种简单的方法吗?

1 个答案:

答案 0 :(得分:0)

你有很多方法可以做到这一点。我遵循的方法之一如下:

df3 = df2[df1.ne(df2).any(axis=1)]

df3 将列出至少一个单元格不匹配的所有行。 仅供参考,这里的 ne 代表 not equal

示例:

创建 df1

data = [['batman', 10], ['joker', 15], ['alfred', 14]]
df1 = pd.DataFrame(data, columns = ['Name', 'Age'])

创建与df1略有不同的df2

data = [['batman', 10], ['joker', 6], ['alfred', 17]]
df2 = pd.DataFrame(data, columns = ['Name', 'Age'])

提取至少一个不等单元格的行

df3 = df2[df1.ne(df2).any(axis=1)]
df3

打印结果df3

   Name  Age
1  joker    6      // the age is different in df1 and df2 for joker
2  alfred   17      // the age is different in df1 and df2 for alfred 

现在,您可以从生成的数据框中根据您的业务案例检查范围要求。