python np.loadtxt() 读取数据集时报错ValueError: could not convert string to float以及pandas.readcsv()对比

阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量。文章设置为仅粉丝可见,是因为写博客确实花了不少精力。希望互相进步谢谢!!

1、bug

读取csv数据集时

path = r"./temperature_dataset.csv"
data = np.loadtxt(path)    

报错

ValueError: could not convert string to float: ‘-0.7,-2.3,0.1,-2.3,-0.9’

2、分析

读取的数据集长这个玩意儿

在这里插入图片描述
原来数据集里面有逗号,需要加个参数delimiter=‘,’ ,否则就会第一行全部转为为float,因为默认float。

3、解决办法

加个参数delimiter=‘,’

path = r"./temperature_dataset.csv"
data = np.loadtxt(path,delimiter=',')     #一定要有第二个参数,否则报错,因为csv文件里面是用,分割开的

4、常见的两种读取csv文件方式

1、numpy中loadtxt()
2、pandas中read_csv()

读以下两篇文章即可:

《numpy中loadtxt 的用法及参数说明》

《pandas中read_csv详解》

1、注意numpy中loadtxt()和pandas中read_csv()不一样!!!

  • 前者需要指定分隔符,不然就会读一整行。且返回的就是一个ndarray了

  • 后者可以不用指定,不指定会默认逗号分隔。且返回的是一个表格型的数据结构,有行索引和列索引。需要用np.array()转化成ndarray才能用。如下图

    在这里插入图片描述
    2、注意pandas中read_csv()name header两个参数

这两个参数使用不好,很可能导致读取数据缺第一行。还是以上面例子为例:

4.1、numpy中loadtxt()正确读取

path = r"./temperature_dataset.csv"
data = np.loadtxt(path,delimiter=',')     #一定要有第二个参数,否则报错,因为csv文件里面是用,分割开的
print(data.shape)    #(3600,5)

4.2、pandas中read_csv()错误读取

df = pandas.read_csv('C:/Users/zct/Jupyter_test/2-1/temperature_dataset.csv')
print(df)
data = np.array(df)
print(data.shape)     #(3959,5)   少了第一行

输出:
在这里插入图片描述
发现少了一行。

原因分析:

读取的csv文件是纯数据的,不指定name参数的话会默认第一行为列名。故少读一列

在这里插入图片描述

4.3、pandas中read_csv()正确读取

df = pandas.read_csv('C:/Users/zct/Jupyter_test/2-1/temperature_dataset.csv', names=['one','two','three','four','five'])
print(df)
data = np.array(df)
print(data.shape)     #(3960, 5)

在这里插入图片描述


码字不易,谢谢点赞!!!
码字不易,谢谢点赞!!!
码字不易,谢谢点赞!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值