我有两个数据框.我已经try 生成一个简短的数据来解释我正在寻找什么,任何建议或帮助,我都很感激.

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']})

我想按保单编号比较两个数据帧,如果[POLICY STATUS]列仍然良好,我想保留这些策略.否则,我想将它们从我的第一个数据框中删除.

有没有更简单的方法来解决这个问题?我try 迭代两个数据框的每一行并比较它们,但这需要很多时间,因为我有更大的数据集.

提前感谢!

推荐答案

如果我理解正确的话,你可以使用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

Python相关问答推荐

通过优化空间在Python中的饼图中添加标签

在内部列表上滚动窗口

使用numpy提取数据块

numba jitClass,记录类型为字符串

Python 约束无法解决n皇后之谜

. str.替换pandas.series的方法未按预期工作

scikit-learn导入无法导入名称METRIC_MAPPING64'

为什么抓取的HTML与浏览器判断的元素不同?

计算天数

如何指定列数据类型

* 动态地 * 修饰Python中的递归函数

基于行条件计算(pandas)

为什么在FastAPI中创建与数据库的连接时需要使用生成器?

如何在Python Pandas中填充外部连接后的列中填充DDL值

如何在Python 3.9.6和MacOS Sonoma 14.3.1下安装Pyregion

无法在Spyder上的Pandas中将本地CSV转换为数据帧

如何在PythonPandas 中对同一个浮动列进行逐行划分?

Matplotlib中的曲线箭头样式

如何在Python中实现高效地支持字典和堆操作的缓存?

关于数字S种子序列内部工作原理的困惑