Pandas DataFrame行筛选:保留含指定字符串的行
嘿,我来帮你解决这个Pandas筛选的问题!下面是针对你需求的具体实现方案:
Pandas筛选指定文本行的解决方案
假设你的原始DataFrame名为df,要筛选Text列包含"AWAIT TO SHIP"、"13579"或"24613"的行,直接用这段代码就能搞定:
import pandas as pd # 构建筛选条件:匹配任意一个目标字符串 mask = df['Text'].str.contains(r'AWAIT TO SHIP|13579|24613', na=False) # 应用筛选,得到目标表格 target_df = df[mask]
关键细节说明:
str.contains()是Pandas专为字符串列设计的匹配方法,用|分隔多个匹配项就表示“或”的逻辑na=False参数很重要:如果你的Text列有缺失值(NaN),这个参数会把这些行直接排除,避免触发报错- 开头的
r表示原始字符串,确保特殊字符(这里没有,但属于好习惯)不会被意外转义
常见错误排查(针对你之前遇到的报错):
如果之前的代码出问题,大概率是这几个原因:
- 漏写了
str.:直接用df['Text'].contains()会报错,因为Pandas的普通列没有contains方法,必须用str.contains针对字符串列 - 没处理缺失值:Text列的NaN会让
str.contains返回NaN,导致筛选时出错,加上na=False就解决了 - 匹配模式写错:比如多个字符串之间没加
|,或者不小心加了多余的引号
内容的提问来源于stack exchange,提问作者PineNuts0
相关产品推荐
相关产品推荐

