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

如何基于现有pandas DataFrame同时过滤行、选列生成新DataFrame并解决语法报错

你的代码有两个语法错误导致报错:

  • 条件判断的相等逻辑误用了赋值符号=,Python中判断两个值相等需要用双等号==,赋值符号不能用在条件表达式中,这就是你遇到SyntaxError:Keyword can't be an expression的直接原因
  • loc方法接收行筛选条件和列筛选参数时,如果要选多个列,需要把列名放在列表中传递,不能直接用逗号分隔多个列名

正确的链式操作写法如下:

new_df = old_df.loc[old_df["variable1"] == 2016, ['variable1', 'variable2', 'variable3']]

如果偏好更简洁的写法,也可以用query方法实现:

new_df = old_df.query("variable1 == 2016")[['variable1', 'variable2', 'variable3']]

另外补充说明:你之前分多行写的代码里,过滤行的那行也误用了单等号,实际运行也会报错,替换成双等号即可正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:06:08