【问题标题】:Finding non-matching rows between two dataframes在两个数据帧之间查找不匹配的行
【发布时间】:2020-09-28 17:15:18
【问题描述】:

我有一个场景,我想在两个数据帧之间找到不匹配的行。两个数据框将有大约 30 列和一个 id 列,用于唯一标识每条记录/行。所以,我想检查df1 中的一行是否与df2 中的行不同。 df1 是更新的数据框,df2 是以前的版本。

我尝试了一种方法 pd.concat([df1, df2]).drop_duplicates(keep=False) ,但它只是结合了两个数据框。有没有办法做到这一点。非常感谢您的帮助。

dfs 的示例数据如下所示。

iduser_idtypestatus

总共有 39 列可能包含 NULL 值。

谢谢。

附: df2 将始终是 df1 的子集。

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

如果您的 df1 和 df2 具有相同的形状,您可以轻松地与此代码进行比较。

df3 = pd.DataFrame(np.where(df1==df2,True,False), columns=df1.columns)

您将看到布尔输出“False”,因为单元格值不匹配。

【讨论】:

  • 镜头尺寸相同是什么意思?
  • 对不起,我的意思是相同的形状(行数和列数)
猜你喜欢
  • 2019-03-16
  • 1970-01-01
  • 1970-01-01
  • 2019-11-10
  • 2012-08-20
  • 2022-10-07
  • 2018-05-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多