我有两个数据帧,其中包含来自单个源(csv)不同部分的 corr() 的结果。现在我想比较两个数据帧中的所有值,以检查它们是否相等或者是否落在特定范围内。所以伪代码会是这样的:
df1['column1']['row1'] == df2['column1']['row1']
Run Code Online (Sandbox Code Playgroud)
在 Pandas 中是否有一种简单的方法可以做到这一点?
你有很多方法可以做到这一点。我遵循的方法之一如下:
df3 = df2[df1.ne(df2).any(axis=1)]
Run Code Online (Sandbox Code Playgroud)
df3 将列出至少有一个单元格不匹配的所有行。仅供参考,ne这里代表not equal.
例子:
创建 df1
data = [['batman', 10], ['joker', 15], ['alfred', 14]]
df1 = pd.DataFrame(data, columns = ['Name', 'Age'])
Run Code Online (Sandbox Code Playgroud)
创建与 df1 略有不同的 df2
data = [['batman', 10], ['joker', 6], ['alfred', 17]]
df2 = pd.DataFrame(data, columns = ['Name', 'Age'])
Run Code Online (Sandbox Code Playgroud)
提取至少有一个不相等单元格的行
df3 = df2[df1.ne(df2).any(axis=1)]
df3
Run Code Online (Sandbox Code Playgroud)
打印结果 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
Run Code Online (Sandbox Code Playgroud)
现在,从生成的数据框中,您可以根据您的业务案例检查范围要求。