Pandas使用df.query查询宝可梦数据时出现KeyError问题求助
Pandas .query方法KeyError: False问题解决
错误原因
你在df.query()里用单引号包裹带空格的列名('Type 1'),这会让Pandas把它识别成字符串字面量,而非DataFrame的列名。当执行'Type 1' == 'Fire'时,表达式结果是布尔值False,Pandas会尝试去DataFrame中查找名为False的列,因此触发KeyError。
解决方法
对于带空格的列名,在query()中需要用反引号(`)或双引号包裹列名,修正后的代码如下:
方法1:用反引号包裹列名
df.query("`Type 1` == 'Fire' and `Type 2` == 'Flying'")
方法2:用双引号包裹列名
df.query('"Type 1" == "Fire" and "Type 2" == "Flying"')
补充说明
如果列名无空格,直接书写即可(如你测试的Speed <= 10);但列名包含空格、特殊字符或与Python关键字冲突时,必须用反引号或双引号明确标记这是列名。
内容的提问来源于stack exchange,提问作者monique
相关产品推荐
相关产品推荐

