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

Python处理CSV文件报错ValueError: could not convert string to float: '.' 求助

错误根因
  • 未对CSV文件的每行内容按分隔符(通常为逗号,)拆分,直接遍历字符串的单个字符进行转换:例如行内容为0.089,23时,直接遍历会得到'0'、'.'、'0'、'8'、'9'、','、'2'、'3',遇到单独的.字符时自然无法转换为float类型。
  • 函数定义的filename形参未被实际使用,open方法内写死了文件路径,调用时传入的路径参数不会生效。
修复方案

建议使用Python内置的csv模块处理CSV文件,避免手动处理分隔符、换行符等边界问题,修复后代码如下:

import csv

def loadCsv(filename):
    dataset = []
    with open(filename, 'r', encoding='utf-8') as f:
        csv_reader = csv.reader(f)
        # 跳过表头行
        next(csv_reader)
        for row in csv_reader:
            # 对拆分后的每个单元格值先去除首尾空白,再转换为float
            dataset.append([float(x.strip()) for x in row])
    return dataset

如果你的CSV中存在用单独.表示空值的情况,可以额外增加判断逻辑处理异常值,示例如下:

dataset.append([float(x.strip()) if x.strip() != '.' else 0.0 for x in row])

你可以根据实际需求替换上述代码中的0.0为其他默认值,或者增加空值过滤逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:06:05