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

使用pandas过滤xlsx/csv数据时触发TypeError报错的原因及解决方法

报错原因
  • 直接触发报错的原因是代码中["WindSpeed"] > 2的写法,是将Python列表类型和整数类型做大小比较,Python原生不支持该类操作,因此抛出TypeError。
  • 逻辑层面的错误是pandas过滤行的语法使用错误:你需要先取出WindSpeed列的Series对象,再和2做逐元素比较,生成布尔掩码后才能用来筛选DataFrame的行。使用[["WindSpeed"]]双括号取列返回的是DataFrame类型,哪怕你写对了取值逻辑,也不符合后续过滤的要求。
修正代码

标准分步写法

import pandas as pd
df = pd.read_excel("Wind.xlsx")
# 单括号取单列得到Series,逐元素比较生成布尔掩码
filter_mask = df["WindSpeed"] > 2
ew = df[filter_mask]
print(ew)

简化合并写法

也可以将过滤逻辑合并为一行,写法更简洁:

import pandas as pd
df = pd.read_excel("Wind.xlsx")
ew = df[df["WindSpeed"] > 2]
print(ew)

如果需要过滤后只保留指定列,用loc写法逻辑更清晰,示例如下:

# 过滤WindSpeed>2的行,仅保留WindSpeed、Timestamp两列
ew = df.loc[df["WindSpeed"] > 2, ["WindSpeed", "Timestamp"]]

内容的提问来源于stack exchange,提问作者Frederik N. Pedersen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:54:05