【问题标题】:After merging two dataframes in Python, how do I find the dataframe rows that were not successfully merged?在 Python 中合并两个数据框后,如何找到未成功合并的数据框行?
【发布时间】:2021-02-16 06:35:36
【问题描述】:

在使用 Pandas 对两个数据框进行左合并后,我想生成一个数据框,其中包含未成功合并的第二个/右数据框的行。

数据框 df1 和 df2 基于名为 City 和 State 的两列合并。我这样做是为了生成合并的数据框 df3:

merged_df = pd.merge(df1, df2, how="left", left_on=['City','State'], right_on=['City','State'])

如何生成包含未成功匹配并与 df1 合并的 df2 行的 unmerged_df?

感谢您的帮助!

【问题讨论】:

  • 我认为您可以使用 merge_df 过滤 df1 和 df2。从 df1 和 df2 中删除合并中存在的内容

标签: python python-3.x pandas dataframe merge


【解决方案1】:

你想要的权利不包括加入。

检查this answer

在您的情况下,它应该像这样简单(未经测试):

right_outer_df = (df1.merge(df2, on=['City','State'], how='right', indicator=True)
     .query('_merge == "right_only"')
     .drop('_merge', 1))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 2022-01-20
    • 2012-10-08
    相关资源
    最近更新 更多