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

Python读取CSV转NumPy数组报could not convert string to float错误如何解决

问题解决方案

根因分析

你使用csv.reader读取文件时指定的分隔符为;(分号),但当前CSV文件的实际字段分隔符为,(逗号),导致每行数据没有被拆分为独立字段,每个子列表仅包含1个拼接了所有数值的长字符串,因此无法直接转换为float类型。

修复方案

方案一:修正读取参数(推荐)

在读取文件阶段直接修改分隔符配置,后续转换数组无需额外处理:

import csv
import numpy as np

with open('sample_data/california_housing_train.csv', 'r') as f:
    next(f)
    # 将分隔符从;替换为,
    housing = list(csv.reader(f, delimiter=','))

# 直接转换为float类型数组
wines = np.array(housing, dtype=np.float64)

方案二:处理已有列表数据

如果已经生成了原始的housing列表不想重新读取文件,可手动拆分每个长字符串后转换类型:

import numpy as np

processed_housing = []
for item in housing:
    # 拆分长字符串为单个数值字符串后转float
    split_row = [float(num) for num in item[0].split(',')]
    processed_housing.append(split_row)

wines = np.array(processed_housing, dtype=np.float64)

两种方法执行后,wines即为符合要求的浮点型numpy数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:36:03