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

使用DataFrame遇TypeError: '>'不支持str与int比较,如何解决?

问题解决思路

要不要转成NumPy数组?

完全没必要。Pandas DataFrame在表格数据处理上比纯NumPy数组更灵活,自带的索引、列名、缺失值处理等特性都是优势,继续用DF就好。

解决DF中比较操作的类型错误

你遇到的问题核心是列的数值转换没有真正生效,不是DF本身不支持>这类比较。按以下步骤排查修复:

  • 先确认列的实际类型:执行print(df.dtypes),看目标列是不是int64/float64类型。如果还是object,说明之前的转换没成功。
  • 用更稳健的方法转换数值:别直接用astype(int),改用pd.to_numeric()处理,它能自动识别非数字内容并处理:
    # 把目标列转成数值,无法转换的设为NaN
    df['你的列名'] = pd.to_numeric(df['你的列名'], errors='coerce')
    
  • 处理转换后的缺失值:如果有NaN(因为原数据里有非数字内容),可以选择删除或填充:
    # 删除含NaN的行
    df = df.dropna(subset=['你的列名'])
    # 或者把NaN填充为0后转成int
    df['你的列名'] = df['你的列名'].fillna(0).astype(int)
    
  • 确认转换完成后再执行比较:比如筛选结果 = df[df['你的列名'] > 100],这时候就不会出现类型不匹配的报错了。

另外注意:如果是两个列之间的比较,要确保两个列都完成了正确的数值转换,不能只转其中一个。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:10:30