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

Python 3.6.3报错ValueError:无法将'1.csv'转为浮点数,求原因

解决ValueError: could not convert string to float: '1.csv'问题

兄弟,这个错误的根源一眼就能看出来——你在代码里做了一个完全没必要的操作,直接把逻辑搞砸了:

错误核心原因

看这段代码:

file_name = file_n[k] + ".csv"
file_name1 = float(file_name)  # 这行就是出错的地方!
data = np.loadtxt(file_name1,comments='%',delimiter=',',usecols=[0,1],skiprows=0)

你把拼接好的文件名(比如'1.csv')强行转换成了浮点数,但字符串'1.csv'里包含非数字字符.csv,Python根本没法把它转成float,自然就抛出了ValueError: could not convert string to float: '1.csv'。

而且更关键的是:np.loadtxt需要的第一个参数是文件名字符串,不是浮点数字!你完全不需要做这个类型转换。

修正方法

直接删掉那行多余的类型转换,用原始的文件名字符串传入np.loadtxt就行:

for k in range(np.size(file_n)):#range(1):#
    file_name = file_n[k] + ".csv"
    # 删掉 file_name1 = float(file_name) 这行
    data = np.loadtxt(file_name, comments='%', delimiter=',', usecols=[0,1], skiprows=0)
    time0 = data[:,0]
    volt0 = data[:,1]
    n_int = 10.#+ np.abs(k-15)
    # 另外注意:下面的t0和V0应该是time0和volt0,你这里写错变量名了!
    t_size = np.array(np.size(time0)/n_int, dtype=int)-1
    t = np.zeros(t_size)
    V = np.zeros(t_size)
    for j in range(t_size):
        t[j] = np.sum(time0[j*n_int:(j+1)*n_int-1])/n_int
        V[j] = np.sum(volt0[j*n_int:(j+1)*n_int-1])/n_int

另外顺便提醒一下:你后面循环里用的t0和V0其实应该是前面定义的time0和volt0,这是个变量名笔误,不修正的话后面还会报NameError,一起改了更稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:13:26