Python For Data Analysis-六章第二节
《Python For Data Analysis》的第六章的第二节主要围绕读序列化和读取Excel的函数展开。
12.1 pickle数据序列化
序列化,是把对象转换为字节序列的过程称为对象的序列化,把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中。对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可传递性。序列化是把对象转换成有序字节流,以便在网络上传输或者保存在本地文件中。
反序列化,是把字节序列恢复为对象的过程称为对象的反序列化,客户端从文件中或网络上获得序列化后的对象字节流后,根据字节流中所保存的对象状态及描述信息,通过反序列化重建对象。 在python里可以用cpickle和pickle,cpickle是用c写的,速度快,pickle是Python写的。pandas的dataframe自带序列化的函数to_pickle、read_pickled等。
import pandas as pd
import numpy as np
col = list("abcd")
ind = list("opqrst")
val = np.arange(24).reshape((6,4))
df0 = pd.DataFrame(val, columns = col, index=ind)
print "-" * 40
print df0, "# df0"
print "-" * 40
print "Serialization...."
df0.to_pickle("./pick_dataframe")
print "-" * 40
print "getting datas...."
df1 = pd.read_pickle("./pick_dataframe")
print "-" * 40
print df1, "# df1"
执行结果:
----------------------------------------
a b c d
o 0 1 2 3
p 4 5 6 7
q 8 9 10 11
r 12 13 14 15
s 16 17 18 19
t 20 21 22 23 # df0
----------------------------------------
Serialization....
----------------------------------------
getting datas....
----------------------------------------
a b c d
o 0 1 2 3
p 4 5 6 7
q 8 9 10 11
r 12 13 14 15
s 16 17 18 19
t 20 21 22 23 # df1
12.2 读写Excel文件
在pandas里读写Excel文件,在本站的Excel文件创建DataFrame一节里有介绍过,此处就不累述了。