阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量。文章设置为仅粉丝可见,是因为写博客确实花了不少精力。希望互相进步谢谢!!
这里写自定义目录标题
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()
读以下两篇文章即可:
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)
码字不易,谢谢点赞!!!
码字不易,谢谢点赞!!!
码字不易,谢谢点赞!!!