gpt4 book ai didi

python - 从多个 panda 数据帧创建 HDF5

转载 作者:太空宇宙 更新时间:2023-11-03 14:57:39 25 4
gpt4 key购买 nike

我有 100 个 panda 数据帧存储在我计算机上目录中的 .pkl 文件中。我想浏览所有数据帧并将它们全部保存在 1 个 HDF5 文件中。我原本计划将所有数据帧保存在 1 个 pickle 文件中,但我听说 HDF5 明显更好更快。

首先我是这样做的:

path = '/Users/srayan/Desktop/data/Pickle'
df = pd.DataFrame()
for filename in glob.glob(os.path.join(path, '*.pkl')):
newDF = pd.read_pickle(filename)
df = df.append(newDF)
df.to_pickle('/Users/srayan/Desktop/data/Pickle/Merged.pkl')

但最长的部分是将巨大的数据帧转换为 pickle 。有什么方法可以将这个大数据帧放入 HDF5 中,或者有什么更好的建议如何将所有 pickle 文件收敛到 1 个可以保存的数据帧中?

最佳答案

HDF5 文件内部就像它自己的文件系统,您可以在其中存储任意数量的内容。例如:

for filename in glob.glob('*.pkl'):
df = pd.read_pickle(filename)
key = os.path.basename(filename) # or choose another name
df.to_hdf('merged.h5', key)

这会将所有 DataFrame 存储到单个 HDF5 文件中。您可以使用旧文件名作为新文件中的键,也可以选择其他命名约定。

如果您希望将数据连接到存储在 HDF5 中的单个数据集:

dfs = []
for filename in glob.glob('*.pkl'):
dfs.append(pd.read_pickle(filename))

df = pd.concat(dfs)
key = 'all_the_things'
df.to_hdf('merged.h5', key)

我通常在 HDF5 中启用压缩。这不会使文件变得更难以读取,并且可以节省大量磁盘空间:

df.to_hdf('merged.h5', key, complib='zlib', complevel=5)

关于python - 从多个 panda 数据帧创建 HDF5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45395687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com