You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中无需使用for循环,通过列值与列表匹配筛选DataFrame行

用Pandas快速筛选匹配列表值的DataFrame行

嘿,这事儿超简单的,咱们直接用Pandas内置的isin()方法就能搞定,完全不需要写for循环,而且这是矢量化操作,处理大数据量的时候比循环高效太多啦!

完整实现代码

import pandas as pd

my_list = ["a", "b", "d"]
d = {'col1': [1, 2, 3, 4], 'col2': ["a", "b", "c", "d"]}
df = pd.DataFrame(data=d)

# 核心的筛选逻辑就在这一行
filtered_df = df[df['col2'].isin(my_list)]
print(filtered_df)

运行结果

col1 col2
0     1    a
1     2    b
3     4    d

简单解释下原理

  • df['col2'].isin(my_list)会生成一个布尔类型的Series,它会逐一检查col2里的每个值是否存在于my_list中,对应的结果是[True, True, False, True]
  • 把这个布尔Series作为索引传入原DataFrame(也就是df[布尔Series]),Pandas会自动保留所有标记为True的行,刚好就是你想要的结果。

内容的提问来源于stack exchange,提问作者edn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 18:24:07