【问题标题】:How to get rows from one dataframe if values are in another dataframe如果值在另一个数据框中,如何从一个数据框中获取行
【发布时间】:2017-04-04 21:21:00
【问题描述】:

我有一个数据帧,它是从另一个数据帧删除重复项的结果集。

changes = full_set.drop_duplicates(subset=['Employee ID', 'Benefit Plan Type', 'Sum of Premium'], keep='last')

然后我有另一个 ID 和计划类型仍然列出两次

dupe_accts = changes.set_index(['Employee ID', 'Benefit Plan Type']).index.get_duplicates()

我现在要做的是有第三个数据框,如果 ID 和计划类型在

dupe_accts

它会输出来自

的行
changes

进入一个新的数据框

目前为止

dupes = changes[['Employee ID', 'Benefit Plan Type']].isin(dupe_accts)

但这是输出

False False
False False
False False
False False
False False

【问题讨论】:

    标签: python python-2.7 pandas dataframe


    【解决方案1】:

    您不需要设置索引并以这种方式获得欺骗。您可以使用duplicated 来获取一个布尔数组并用它屏蔽change 数据框。

    keep=False 参数将识别所有重复项。这与不会将第一个或最后一个识别为重复的其他选项相反。

    duplicated = changes.duplicated(
        subset=['Employee ID', 'Benefit Plan Type'], keep=False)
    dupe_accts = changes[duplicated]
    

    【讨论】:

    • 这是完美的。谢谢
    猜你喜欢
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多