比较两个数据框与条件并删除所有不合格的

问题描述 投票:0回答:1

我有两个数据框。我试图生成一个简短的数据来解释我正在寻找的内容,任何建议或帮助都会受到赞赏。

df = pd.DataFrame({'policy number':[11,22,33,44,55,66,77,88,99], ' policy status':['good', 'good', 'good', 'good', 'good','good', 'good', 'good', 'good']})

df_2 = pd.DataFrame({'policy number':[11,83,63,44,55,66,67,88,99,100], 'policy status':['bad','bad', 'good', 'good', 'bad', 'good','bad', 'good', 'average', 'good']})

我想按保单编号比较两个数据框,如果[保单状态]列仍然良好,我想保留这些保单。否则我想从我的第一个数据框中删除它们。

有没有更简单的方法?我尝试迭代两个数据帧的每一行并比较它们,但这需要很多时间,因为我有更大的数据集。

提前致谢!

python pandas dataframe function compare
1个回答
0
投票

如果我理解正确,您可以使用

pd.Series.isin
来完成任务(用于创建布尔掩码):

print(
    df[
        df["policy number"].isin(
            df_2.loc[df_2["policy status"] == "good", "policy number"]
        )
    ]
)

打印:

   policy number  policy status
3             44           good
5             66           good
7             88           good
© www.soinside.com 2019 - 2024. All rights reserved.