Series和DataFrame对象中存储了哪些额外数据?

时间:2012-03-24 10:35:14

标签: pandas

我对配置或修补pandas感兴趣,以便它的内存开销尽可能低。在一个实验中,我创建了2个numpy数组,每个数组包含5000万uint32值。以numpy格式存储这些数组需要200 + 200 = 400 MB。如果我将其中一个数组包装到一个Series对象(index = None)中,那么它会占用大约600 MB的内存。如果我将两个数组包装到一个DataFrame对象中(索引=无),则内存要求为~1600 MB。

似乎额外的内存要求是#rows * 8字节用于系列存储,#rows *(#columns + 1)* 8字节用于DataFrame存储。你能解释一下系列和DataFrame对象中存储的额外数据以及原始的numpy数组吗?

1 个答案:

答案 0 :(得分:1)

额外存储是由于行索引存储为64位整数。有一个未解决的问题可以解决您的用例的内存使用问题:https://github.com/pydata/pandas/issues/939