如何基于条件筛选并保留两个DataFrame中状态为“good”的共同策略记录
作者:SunnyJourney
时间:2026-07-20
浏览:1
GoldWave 简体中文
一款功能相当强大的录音及音频编辑软件,不仅可以编辑音频,而且还可以录音,功能丰富,操作简单,使用方便,实用性强,并且占用电脑内存小,运行速度快,不卡顿电脑,使电脑系统保持良好的运行状态。支持许多格式的音频文件,包括WAV、OGG、VOC、IFF、AIFF、
2026-08-22
利用pandas库的isin方法结合布尔索引,从第一个数据框中筛选出策略号在第二个数据框中状态为“良好”的记录,实现秒级处理。也可使用merge左连接后过滤,时间复杂度为O(n+m),避免低效逐行循环。该方法高效,适用于大数据量。
本文目录
本文介绍如何高效地从第一个dataframe中筛选出那些在第二个dataframe中对应策略号的状态仍为“good”的记录,避免低效循环,利用pandas向量化操作实现秒级处理。
实际做数据分析时,经常会遇到这么一种场景:手头有一张主表(比如原始策略清单),另一张是更新后的状态快照;现在需要根据快照里的状态,只保留主表中那些“当前仍有效”的记录。具体到本例,df 是原始策略清单,df_2 是最新的状态校验表,目标很清楚:只要 df 里那些 policy number 在 df_2 中对应 policy status == "good" 的行。
这个需求拆开其实就两步——
- 从 df_2 中捞出所有状态为 "good" 的 policy number(也就是当前有效的策略号集合);
- 再从 df 里筛选出 policy number 刚好落在这个集合里的行。
用 Pandas 来做,一行 pd.Series.isin() 配合布尔索引就搞定了,完全不用写循环,底层向量化运算快得飞起:
import pandas as pd
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', 'a verage', 'good']
})
# ✅ 高效筛选:仅保留 df 中 policy number 同时存在于 df_2["good"] 策略集合中的行
result = df[df["policy number"].isin(
df_2.loc[df_2["policy status"] == "good", "policy number"]
)]
print(result)
输出结果很干净:
policy number policy status 3 44 good 5 66 good 7 88 good
⚠️ 注意事项:
- 列名必须严格匹配——示例里 df 的列名
' policy status'前面有个空格,而 df_2 是'policy status',一不小心就会匹配失败。建议统一清洗:df.columns = df.columns.str.strip()。- 如果 policy number 有重复,
isin()依然能正确工作,只要至少有一个匹配就视为True。- 如果你还想保留 df_2 中的最新状态字段,可以改用
merge()做左连接后再过滤:merged = df.merge(df_2, on="policy number", how="inner", suffixes=("", "_new")) result = merged[merged["policy status_new"] == "good"].drop(columns=["policy status_new"])
这个方法的时间复杂度是 O(n + m),远优于嵌套循环的 O(n × m)。数据量上了百万级,效果尤其明显——几秒内就能出结果,完全不用干等。
作者最新文章
漫蛙下载最新版本
2026-10-13 13:42
漫蛙app下载安装最新版
2026-10-13 13:42
漫蛙2漫画APP免费下载安装最新版本
2026-10-13 13:20
漫蛙漫画网页下载安装最新版本
2026-10-13 13:17
keyshot快捷键命令大全表格整理与使用教程
2026-10-12 14:13
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































