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

如何将pandas DataFrame中含指定文本的行提取到新DataFrame

需求实现正确方案

你要实现从test3.csv的e列筛选包含[XXX]的行并生成新DataFrame,可直接使用以下代码:

import pandas as pd

# 读取源文件
df = pd.read_csv('test3.csv')
# 构建筛选条件:e列包含[XXX],空值默认不匹配
# 方式1:关闭正则匹配,直接按普通字符串匹配
mask = df['e'].str.contains('[XXX]', regex=False, na=False)
# 方式2:保留正则匹配,转义中括号特殊字符
# mask = df['e'].str.contains(r'\[XXX\]', na=False)
# 筛选符合条件的行生成新DataFrame
new_df = df[mask].copy()
# 输出验证
print(new_df)

关键逻辑说明

  • pandas的str.contains()是专门用于Series字符串包含判断的方法,比自行遍历、调用np.where的写法更简洁高效
  • 因为[和]是正则表达式的特殊字符,要么设置regex=False把目标内容当作普通字符串匹配,要么用反斜杠转义特殊字符,否则会匹配不到你要的[XXX]文本
  • 加na=False是为了处理e列中的空值,避免空值返回NaN导致筛选报错

原有代码问题

你之前的写法逻辑完全不成立:np.where('[XXX]')仅传入了一个字符串,没有传入任何判断条件,也没有指定要判断的是e列的内容,不可能得到正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:06:07