选用Python进行数据解析(九)

二进制数据格式

pickle序列化

贯彻二进制存储最简单易行方法就是应用pickle体系化。
pandas可以用frame.save('ch06/frame_pickle')把frame以pickle形式保留到磁盘上的章程。读取使用的是pd.load('ch06/frame_pickle')

使用HDF5格式

HDF指层次型数据格式(hierarchical data
format)。HDF5援助多种压缩器的即时压缩,还是能快捷存储重复情势数据,还是可以急忙分块读写,所以对特别大的一筹莫展直接放入内存的多少集就不行实惠。
NoSQL,HDF5库有五个接口分别是PyTables和h5py。处理海量数据(io密集型
重复读写磁盘数据)时,这两个接口相当符合要求。

#HDFStore就是通过PyTables存储的pandas对象:
store = pd.HDFStore('mydata.h5')
store['obj1'] = frame
store['obj1_col'] = frame['a']
#形如字典一样存取。
#HDF5被用来一次写多次读,不建议多个写操作,文件可能会损坏。

读取Microsoft Excel文件

读取xls或者xlsx文件得到ExcelFile实例
xls_file = pd.ExcelFile('data.xls')
实例再经过parse读取到DataFrame中:
table = xls_file.parse('Sheet1')

使用HTML和Web API

走访这么些提供了数据的API最简便的主意应用requests包。

import requests
url = 'https://www.baidu.com'
resp = requests.get(url)

众多的Web API再次回到的都是JSON字符串,我们先要加载到Python对象中:

import json
data = json.loads(resp.text)
data.keys()
#keys里有一个results,results有一组tweet,每条为一个字典。
tweet_fields = ['created at', 'from-User', 'id','text']
tweets = DataFrame(data['results'], columns = tweet_fields)
#即可得到tweet的数据
tweets.ix[7]

利用数据库

数据库近来着重有二种,一种是SQL关周到据库(SQL
Server,MySQL等),此外就是NoSQL(Not Only SQL)。

import sqlite3
#假设已经有一个Table叫text,先取出表中数据
con = sqlite3.connect(':memory:')
cursor = con.execute('select  * from test')
rows = cursor.fetchall()
#cursor.description游标的description属性获取到列名
DataFrame(rows,columns = zip(*cursor.description)[0])

很劳累,对吗。pandas.io.sql模块提供了简易的点子(read_frame):

import pandas.io.sql as sql
sql.read_frame('select * from test',con)
#con为连接对象

存取MongoDB中的数据

首先连接上MongoDb实例:

import pymongo
con = pymongo.Connection('localhost',port=27017)

写入数据:

import requests, json
url  = 'http://search.twitter.com/search.json?q=python%20pandas'
data = json.loads(requests.get(url).text)
for tweet in data['results']:
    tweets.save(tweet)

读取数据:

cursor = tweets.find({'from_user':'wesmckinn'})
#cursor可以迭代
tweet_fields =['created at','from_user','id','text']
result= DataFrame(list(cursor), columns = tweet_fields)

总结

这章和上一章总括了貌似意况下何以加载常用的此外来源的多寡,存储,查询等。来源至关紧要有常用的文件,表格,json,数据库等等。既然数据现已加载完毕,那么下一章节就该起来清洗,规整一下那多少个数据了。

网站地图xml地图