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

如何在Pandas query函数的查询字符串中修剪列字符串?

解决Pandas query中带尾随空格的字符串匹配问题

你的问题是My Pet列里存在带尾随空格的cat 值,直接用== 'cat'只能匹配不带空格的那行,下面给你几种可行的解决方法:

方法1:在query中直接修剪列值

在查询字符串里对My Pet列调用str.strip(),修剪掉前后空格后再做匹配:

catDF = testDF.query("`My Pet`.str.strip() == 'cat'")
catDF.head()

这样就能同时匹配cat和cat 的行,输出两行目标结果。

方法2:用正则匹配包含cat及尾随空格的情况

如果需要更灵活的匹配(比如允许任意数量的尾随空格),可以用str.contains结合正则表达式:

catDF = testDF.query("`My Pet`.str.contains('^cat\\s*$')")

正则^cat\s*$表示以cat开头,后面跟着零个或多个空白字符直到行尾,刚好匹配你的两种数据情况。

方法3:提前清理DataFrame的列

如果后续还会多次用到这个列的查询,建议先一次性清理列里的空格,之后再用普通查询即可:

# 先修剪列值
testDF['My Pet'] = testDF['My Pet'].str.strip()
# 再执行查询
catDF = testDF.query("`My Pet` == 'cat'")

验证结果

执行上述任意一种方法后,输出都会包含两行:

My Pet  Cost    Weight      Name
0      cat  $10   10 pounds   Violet
1      cat  $10   15 pounds  Sirius

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 15:55:20