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

Python中使用query函数从DataFrame获取对应videoId的问题

解决pandas query函数引用外部变量的问题

我来帮你搞定这个问题~你遇到的问题是因为在query的字符串表达式里,直接写"ans[0]"会被当成字面量字符串来匹配,而不是去读取外部列表ans里的第一个元素值,所以才返回了空的Series。

下面给你两种可靠的解决方法:

方法1:使用@符号引用外部变量(推荐)

pandas的query支持用@符号直接引用外部变量,这是最安全且简洁的方式,不用担心字符串转义的问题:

ans = ['I am confused']
# 直接引用列表元素
data.query('textOriginal == @ans[0]')['videoId']

# 或者先把目标值存到变量里,可读性更好
target_text = ans[0]
data.query('textOriginal == @target_text')['videoId']

方法2:使用f-string拼接字符串

如果你习惯用字符串拼接的方式,也可以用f-string把变量值插入到查询表达式中:

ans = ['I am confused']
data.query(f'textOriginal == "{ans[0]}"')['videoId']

⚠️ 注意:如果你的文本里包含双引号,这种方式需要额外处理转义,所以更推荐第一种方法。

运行上面的代码后,就能得到你期望的结果——返回对应videoId为B的Series啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:03:43