gpt4 book ai didi

python - Pandas HDFStore : changing dtype of indexes

转载 作者:行者123 更新时间:2023-11-28 17:39:12 25 4
gpt4 key购买 nike

在使用 HDFStore.append 时,是否存在一种控制用于存储数据帧索引的数据类型的方法? ?

pandas 索引似乎总是以 64 位存储在 hdf5 文件中。我想提高存储效率并减小索引列的大小。

我有一个唯一的 3 列多索引,将它们保存为 uint64 索引在我的应用程序中是一种巨大的空间浪费:

给定以下数据框

In [15]: df.dtypes
Out[15]: indA int32
indB int16
indC int8
data float32
dtype: object

HDFStore.append 之前简单地设置 df.set_index(['indA', 'indB', 'indC']) 导致 indAindBindC 在 hdf5 文件中存储为 Int64Col

不设置 pandas 索引而是指定 pytables 数据列:

store.append('mytable', df, data_columns=['indA', 'indB', 'indB'])

indAindBindC 与其原始 dtype 一起存储,但是额外的 Int64Col 存储在hdf5 文件。

这并没有真正帮助:通过存储在原始数据类型中,我为三个 ind 列节省/保留了 56 位。然而,额外的(多余的)索引列需要 64 位...

有什么想法吗?

最佳答案

您的方法是正确的。数据列提供搜索功能并提供数据类型保存。索引存储目前非常固定。

提供存储索引的选项是一个悬而未决的问题,请参阅 here .我已经做了一些工作,但它不是高优先级的 ATM。欢迎您来看一看。

想要缩小存储空间的通常答案是使用压缩。为了节省相对较少的存储空间,您似乎经历了很多困难,但这就是 my2c。

关于python - Pandas HDFStore : changing dtype of indexes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27001426/

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