如何在Python 3中同时实现列名与数值数据二进制序列化及追加写入?
Python 3中同时实现列名+数据序列化与追加的方案
需求
- 将列名和数值数据序列化为二进制文件
- 重新打开文件并追加额外的数值数据
示例数据
import numpy as np columns = ['a', 'b', 'c'] data = np.linspace(0, 1, num=10*3).reshape((10, 3)) data_for_appending = np.linspace(2, 3, num=10*3).reshape((10, 3))
现有方案分析
基于NumPy的实现方案
该方案支持数据保存与追加操作,但无法存储列名信息,加载时需要多次调用np.load来读取分段数据:
# 存储数据 with open('out.npy', 'wb') as f: np.save(f, data) np.save(f, data_for_appending) # 加载数据 with open('out.npy', 'rb') as f: data1 = np.load(f) data2 = np.load(f)
基于Pandas的实现方案
该方案可以同时保存数据与列名,但无法直接通过单次调用完成数据追加:
import pandas as pd df = pd.DataFrame(data, columns=columns) # 存储数据 df.to_pickle('out.pickle') # 加载数据 df2 = pd.read_pickle('out.pickle')
内容的提问来源于stack exchange,提问作者tree frog
相关产品推荐
相关产品推荐

