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

使用Pandas读取UCI乳腺癌数据集时第7列被识别为字符串的原因

问题原因与解决方法

核心原因

你遇到的问题根源在于数据集的第7列(索引为6的列,对应特征Bare Nuclei)中包含非数值的缺失标记?。Pandas自动推断列类型时,只要列内存在非数值内容,就会将整列类型判定为字符串(object dtype),哪怕大部分值是整数。

验证方式

你可以通过查看该列的唯一值确认这一点:

print(data[6].unique())

运行后会输出包含?的数组,这就是类型被识别为字符串的关键原因。

解决办法

有两种常见的处理方式:

  • 读取时直接处理:指定缺失值标记为?,同时使用支持存储NaN的可空整数类型Int64读取该列:
    data = pd.read_csv('UCI/breast-cancer-wisconsin.data', header=None, na_values='?', dtype={6: 'Int64'})
    
  • 读取后转换处理:先读取数据,再将?替换为可空值,最后转换类型:
    data[6] = data[6].replace('?', pd.NA).astype('Int64')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:54:29