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

在Pandas中执行contains字符串搜索后如何正确打印结果?

解决Pandas提取包含指定短语行的问题

嘿,作为Python和Pandas新手,你已经找对了方向——用str.contains()生成布尔掩码是正确的思路,但可能是几个小细节没注意到导致出错。我来帮你一步步修正:

首先,修正代码里的语法错误

你写的print[df2["Document_Title"].str.contains("King")]是错的!print是函数,必须用圆括号调用,改成:

print(df2["Document_Title"].str.contains("King"))

然后,解决路径转义的问题

Windows系统里的路径反斜杠\会被Python当成转义字符,读取CSV时容易报错。你可以两种方式修正:

  • 用原始字符串:在路径前加r
  • 把反斜杠改成双反斜杠\\

比如:

# 原始字符串写法(推荐)
df2 = pd.read_csv(r"C:\...\Desktop\publiccomments.csv")

# 或者双反斜杠写法
df2 = pd.read_csv("C:\\...\\Desktop\\publiccomments.csv")

正确的筛选步骤

得到布尔掩码后,直接用它索引DataFrame就能提取符合条件的行。另外,要注意处理列中的缺失值(NaN),否则str.contains()会返回NaN,导致筛选出错,所以加上na=False参数把缺失值当成False处理:

完整示例代码

import pandas as pd

# 正确读取CSV文件
df2 = pd.read_csv(r"C:\...\Desktop\publiccomments.csv")

# 生成布尔掩码,处理缺失值
contains_king = df2["Document_Title"].str.contains("King", na=False)

# 筛选出包含"King"的所有行
filtered_rows = df2[contains_king]

# 查看结果
print(filtered_rows)

更简洁的写法

你也可以把掩码直接写在索引里,一行完成筛选:

filtered_rows = df2[df2["Document_Title"].str.contains("King", na=False)]

这样就能顺利提取所有Document_Title列包含"King"短语的行啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:08:28