当前位置: 移动技术网 > IT编程>脚本编程>Python > 关于利用Python进行数据分析的方法讲解

关于利用Python进行数据分析的方法讲解

2018年03月10日  | 移动技术网IT编程  | 我要评论

三亚市卫星地图,最新日剧下载,磁贴

二进制数据格式

pickle序列化

实现二进制存储最简单方法就是使用pickle序列化。

pandas可以用frame.save('ch06/frame_pickle')把frame以pickle形式保存到磁盘上的方法。读取使用的是pd.load('ch06/frame_pickle')。

使用HDF5格式

HDF指层次型数据格式(hierarchical data format)。HDF5支持多种压缩器的即时压缩,还能高效存储重复模式数据,还可以高效分块读写,所以对非常大的无法直接放入内存的数据集就非常有效。

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  = 'https://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,数据库等等。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网