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一节里有介绍过,此处就不累述了。