gpt4 book ai didi

pandas - 在pandas hdf5中保存数据时的宽格式与长格式

转载 作者:行者123 更新时间:2023-12-04 17:55:49 29 4
gpt4 key购买 nike

pandas 数据框通常以长(很多行)或宽(很多列)格式表示。

我想知道哪种格式在保存为 hdf 文件( df.to_hdf )时读取速度更快并且占用内存更少。

是否有一般规则或某些情况下应该首选其中一种格式?

最佳答案

IMO 长格式更可取,因为您将拥有更少的元数据开销(有关列名、dtypes 等的信息)。

在内存使用方面,它们或多或少是相同的:

In [22]: long = pd.DataFrame(np.random.randint(0, 10**6, (10**4, 4)))

In [23]: wide = pd.DataFrame(np.random.randint(0, 10**6, (4, 10**4)))

In [24]: long.shape
Out[24]: (10000, 4)

In [25]: wide.shape
Out[25]: (4, 10000)

In [26]: sys.getsizeof(long)
Out[26]: 160104

In [27]: sys.getsizeof(wide)
Out[27]: 160104

In [28]: wide.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Columns: 10000 entries, 0 to 9999
dtypes: int32(10000)
memory usage: 156.3 KB

In [29]: long.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10000 entries, 0 to 9999
Data columns (total 4 columns):
0 10000 non-null int32
1 10000 non-null int32
2 10000 non-null int32
3 10000 non-null int32
dtypes: int32(4)
memory usage: 156.3 KB

关于pandas - 在pandas hdf5中保存数据时的宽格式与长格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40544982/

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