【利用python进行数据分析】数据加载、存储与文件格式

输入输出可以划分为几个大类:

1.读取文本文件和其他更高效的磁盘存储格式

2.加载数据库中的数据

3.利用Web API操作网络资源

---------------------------------------------------------------------------

一、读写文本格式的数据

以逗号分隔的文件使用pd.read_csv。

表头的第一行会自动作为列名使用。

也可以使用read_table,只不过需要指定分隔符:

如果设置header=None,则pandas会为其分配默认的列名,也可以通过names=[]自己定义列名。

也可以通过index_col参数指定“message”列作为dataframe的索引:

如果希望将多个列做成一个层次化索引,只需传入由列编号或列名组成的列表即可:

如果分隔符不是固定的字符,那么可以编写正则表达式作为read_table的分隔符。

如果输入的表格模式为列名的数量比列的数量少1,那么没有列名的那列会自动被read_table识别为索引。

解析器函数中包含许多参数足以处理各种各样的异形文件格式:

接下来列出常用的功能:

1.用skiprows跳过文件的第一行、第三行和第四行

2.缺失值处理

pandas通常默认的标记值有NA、-1.#IND和NULL等

用pd.isnull函数可以判断是否为空值。

na_values可以添加一组用于表示缺失值的字符串【除了以上的默认标记】:

也可以用一个字典为各列指定不同的NA标记值:

二、逐块读取文本文件

对于很大的文件,读取的时候不能在屏幕上打印所有的数据:

如果只想读取几行,可以通过nrows指定:

pd.read_csv('dir',nrows=?)

逐块读取文件可以设置chunksize:

返回的是TextParser对象,可以进行迭代处理。例如,想要统计每1000行中某个column的值频次:

TextParser还有一个get_chunk方法,可以读取任意大小的块。

三、将数据写出到文本格式

利用dataframe的to_csv方法,可以将数据写到一个以逗号分隔的文件中:

可以直接将结果写出到sys.stdout,即在屏幕上打印出文本结果。

打印出的结果可以禁用行和列的标签:

data.to_csv(sys.stdout,index=False,header=False)

也可以只打印部分列,并以给定的顺序排列:

data.to_csv(sys.stdout,index=False,cols=['a','b','c'])

对于series,也有同样的to_csv方法打印结果。

如果要读取csv,可以采用from_csv方法:

Series.from_csv('dir',parse_dates=True)

四、手工处理分隔符格式

zip()是压缩,zip(*)是解压缩。

对于任何单字符分隔符文件,可以直接用python内置的csv模块。

import csv

f=open('ch06/ex7.csv')

reader=csv.reader(f)

csv.reader中也有很多关键字可以用来手动处理文件:

五、json数据

json:JavaScript Object Notation的简称,是通过HTTP请求在Web浏览器和其他应用程序之间发送数据的标准格式之一。

json.loads:将JSON字符串转换成Python形式。

json.dumps:将Python对象转换成JSON格式。

六、读取Microsoft Excel文件

首先需要安装xlrd和openpyxl,才能使用ExcelFile方法。

xls_file=pd.ExcelFile('data.xls')

存放在某个工作表中的数据可以通过parse读取到DataFrame中:

table=xls_file.parse('Sheet1')

七、使用数据库

【参见数据库连接一章】

八、存取MongoDB中的数据

博主还没有搞懂mongodb,所以只能先把笔记记下来了TAT。

首先需要加载pymongo:

存储在MongoDB中的文档被组织在数据库的集合中。

访问集合tweets:tweets=con.db.tweets

将手上的twitter API的数据加载进来通过tweet.save存入集合中:

从集合中取数的查询语句是:

猜你喜欢

转载自blog.csdn.net/m0_37842667/article/details/82285784