PYTHON-pandas-pickle(Python对象序列化)
pickle模块实现了一个强大的算法,能够对用Python实现的数据结构进行序列化( pickling )和反序列化操作。序列化是指把对象的层级结构转换为字节流的过程。
用CPickle实现Python对象序列化
pickle模块(或cPickle)使用的数据格式是Python独有的,默认使用ASCII表达式,以增强可读性。
1
2
3
4
5
6
7
8
9
10
11
12# 使用模块前,需要先导人它
import cPickle as pickle
# 创建具有内部结构的足够复杂的对象
data={'color':['white','red'],'value':[5,7]}
# 用cPickle模块的dumps()函数对data对象执行序列化操作。
pickled_data = pickle.dumps(data)
# 输出pickled_data变量的值,查看dict对象序列化的结果。
print(pickled_data)
# 数据序列化后,在写入文件或用套接字、管道等发送都很简单
# 传输结束后,用cPickle模块的loads()函数能够重建被序列化的对象(反序列化)
nframe = pickle.loads(pickled_data)用pandas实现对象序列化
pandas的序列化格式并不是完全使用ASCII编码。
1
2frame = pd.DataFrame(np.arange(16).reshape(4,4),index=['up','down','left','right'])
frame.to_pickle('frame.pkl')工作目录中将生成新文件frame.pkl,其包含frame中的所有信息。使用以下命令,就能打开PKL文件,读取里面的内容。
1
pd.read_pickle('frame.pkl')
pandas的所有序列化和反序列化操作都在后台运行,用户根本看不到。这使得这两项操作对数据分析人员而言尽可能简单和易于理解。