比较数据帧:查找一个中存在但另一个中不存在的行
比较数据帧以识别差异对于数据质量保证和合并至关重要运营。在本例中,我们有两个具有特定结构的数据帧(df1 和 df2),需要确定 df2 中存在但 df1 中不存在的行。
最初,尝试使用 df1 != df2 比较数据帧,结果是一个错误。此方法仅适用于具有相同行和列的数据框。为了找到对称差异,我们需要一种不同的方法。
一种方法涉及连接数据帧:
df = pd.concat([df1, df2]) df = df.reset_index(drop=True)
然后,按所有列对连接的数据帧进行分组:
df_gpby = df.groupby(list(df.columns))
接下来,我们通过获取仅存在一行的索引值来识别唯一记录:
idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]
使用这些索引,我们可以过滤数据帧以获得所需的结果:
df.reindex(idx)
此方法提供 df2 中存在但不存在的行在 df1 中基于日期索引和 Fruit 列的比较。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3