我有两个数据框。我试图生成一个简短的数据来解释我正在寻找的内容,任何建议或帮助都会受到赞赏。
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']})
我想按保单编号比较两个数据框,如果[保单状态]列仍然良好,我想保留这些保单。否则我想从我的第一个数据框中删除它们。
有没有更简单的方法?我尝试迭代两个数据帧的每一行并比较它们,但这需要很多时间,因为我有更大的数据集。
提前致谢!
如果我理解正确,您可以使用
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