pandas提供各种I/O API函数,这里把一些常用的方式分享给大家。
1.读写csv文件
frame = read_csv('a.csv')
//返回DataFrame对象,相关参数如:
names=['',''] 指定表头;
header=None 使用默认表头;
index_col=['color', 'status'],给前2列设置为层级索引
frame.to_csv('a.csv') //保存到csv文件中,相关参数:
index=False //无索引
header=False
na_rep='NaN' //将空字段替换为NaN字符串,可以是其它值
2.读txt文件
frame = read_table('a.txt', sep='\s*') //以空白字符分割,相关参数:
skiprows=5 //排除前5行,可简写为n=5,skiprows=[5]只排除第5行,skiprows=[1,3,4] //指定行
nrows=3 //从起始往后读多少行
chunksize=3 //逐块读取
3.读写Excel文件
frame = pd.read_excel('a.xls', 'Sheet2'),//默认读第一张表,这里设置为第二张,同样可以设置index和columns参数
4.json数据
>>> import pandas as pd
>>> frame = pd.DataFrame()
>>> import numpy as np
>>> frame = pd.DataFrame(np.arange(4).reshape(2,2),index=['white', 'black'],colu
mns=['up', 'down'])
>>> frame
up down
white 0 1
black 2 3
>>> frame.to_json('frame.json')
>>> frame = pd.read_json('frame.json')
>>> frame
down up
black 3 2
white 1 0
>>>
可以看出,通过DataFrame对json进行管理还是很方便的
5.HDF5格式
hdf5效率高,使用很广,一般用法如下:
>>> from pandas.io.pytables import HDFStore
>>> store = HDFStore('mydata.h5')
>>> store['obj1'] = frame
注意,需要依赖tables
6.cPickle
cPickle是pickle的优化版,速度快很多
import cPickle as pickle
data = {'a': 'b'}
pickled_data = pickle.dumps(data) //序列化
nframe = pickle.loads(pickled_data) //重建
frame.to_pickle('frame.pkl')
pd.read_pickle('frame.pkl')
7.对接数据库
为各数据库提供统一接口