数据的读取
来源:互联网 发布:python 目录名称无效 编辑:程序博客网 时间:2024/05/30 13:42
python中常见的数据读取方式有很多,下面简单介绍以下集中比较常用的读取数据的方法:
- 利用pandas中的read_csv模块直接将数据读取出来。
data = pd.read_csv('/home/nw/Desktop/dataset/iris.txt',header = None)
上面的代码,read_csv中前面的是数据集存放的路径,后面的header很重要,经常以为少了header,数据的总量减小了1,因为少掉的那一行数据变成了DataFrame里面的列索引。
2. 还有一种是比较传统的方法,直接用open打开文件,把文件里面的信息先取出来,不管取出来是什么样子的,线取出来再说,想要作什么处理直接对取出的变量做处理即可。
f= open('/home/nw/Desktop/dataset/iris.txt','rb')dataset = pickle.load(f)#这种方法适用于自己存取自己的数据,有时候在读取别人的数据的时候是不行的,因为别人存数据的方式不一定是用pickle.dump的方式存数据的。
f = open('/home/nw/Desktop/dataset/iris.txt')'''注意这里的open后面最好不要加上其他的读取方式,不需要‘rb’之类的读取方式。因为在后续的数据处理中可能还需要将二进制的数据转换成自己想要的个数。 '''lines = f.readlines()'''现在lines中已经包含了所有的数据信息,我们想要得到的数据格式都可以基于lines做处理。如我读出的iris数据格式是一个列表的形式,使用len(lines)得到列表中元素的个数是151,打印出lines,可以看到lines中每个元素都是一个字符串,并且每个字符串后面都有'\n'的换行字符,最后一行是空行,所以最后一行是多余,并且要去掉每行中的'\n''''
arr = []for i in range(len(lines)): if lines[i] != '\n': arr.append(lines[i])
for i in range(len(arr)): arr[i] = arr[i].strip('\n')#将每行的'\n'脱去
有一种情况是用pandas读出来的数据,每一行是一个字符串的形式,而且将全部的列都整合在一行的字符串里面了,这样读取出来的数据是有误的,我们需要使用到的参数是:
delim_whitespace : boolean, default False.
指定空格(例如’ ‘或者’ ‘)是否作为分隔符使用,等效于设定sep=’\s+’。如果这个参数设定为Ture那么delimiter 参数失效。
如需要载入uci数据集中的auto-mpg.txt文件,如果使用
pd.read_csv(path,header = None)读出来的结果将是一行一行的字符串,如果添加参数delim_whitespace = True,那么就会得到想要的pandas格式
pd.read_csv(path,header = None,delim_whitespace = True)
如果数据之间不是按照空格来分列的,是按照‘,’来分隔的,那么我们就不用参数delim_whitespace这个参数作为分隔符,用sep = ‘,’
pd.read_csv(path,header = None,sep = ‘,’)
阅读全文
0 0
- 读取excel 的数据
- 读取XML的数据
- map数据的读取
- map数据的读取
- scanf的数据读取
- 对象数据的读取
- 数据的读取
- 矩阵数据的读取
- 读取数据的一些属性
- C#读取网站的数据
- Excel 数据的读取写入
- c#读取Excel的数据
- 读取URL返回的数据
- 读取excel数据的函数
- 海量空间数据的读取
- HTTP 读取数据的错误代码
- ExtJs读取后台的数据
- 读取硬盘扇区的数据
- Even separation jzoj 4551 高斯消元法解异或方程组
- POJ 2318 TOYS (二分+折线拐向)
- Java上传图片显示错误
- C语言快速讲解(七)预编译
- QT信号与槽-多信号连接槽
- 数据的读取
- 300. Longest Increasing Subsequence
- 51nod 1006 最长公共子序列Lcs【模板】
- 【modbus】libmodbus库的移植与使用
- 关于端口号
- Java运算符优先级
- PHP 使用用户自定义的比较函数对数组元素排序
- Dubbo架构设计详解
- 【mysql】三种方法为root账户指定密码