如何使用pandas实现表格某列一次性筛选2个及以上指定值
你现有代码仅返回AAA的行,是因为pandas.Series.str.contains()方法的第二个参数并非第二个匹配关键词,你传入的'BBB"'会被识别为大小写敏感参数case的赋值,不会生效为匹配规则。
方案1:完全匹配指定值(最适配你当前需求)
如果你需要筛选G列值完全等于AAA或BBB的行,直接用isin()方法即可,代码如下:
import pandas as pd df = pd.read_excel('filepath', sheet_name = 'Sheet1') # 定义需要匹配的目标值列表 target_list = ["AAA", "BBB"] df_sample = df[df["G"].isin(target_list)]
该方法扩展性极强,后续需要新增匹配值时,直接往target_list里加元素即可。
方案2:模糊匹配子串
如果你后续有需要筛选G列包含AAA或BBB子串的行(比如匹配AAAB、XBBB这类值),可以给str.contains()传入用|分隔的正则匹配规则:
# 正则中|代表或,na=False用于过滤G列的空值,避免报错 df_sample = df[df["G"].str.contains("AAA|BBB", na=False)]
内容的提问来源于stack exchange,提问作者ejbeh
相关产品推荐
相关产品推荐

