Pandas 序列和数据帧对象中存储了哪些额外数据?

Pandas 序列和数据帧对象中存储了哪些额外数据?,pandas,Pandas,我感兴趣的是配置或修补pandas,使其内存开销尽可能低。在一个实验中,我创建了两个numpy数组,每个数组包含5000万个uint32值。以numpy格式存储这些阵列需要200+200=400 MB。如果我将其中一个数组包装成一个Series对象(index=None),那么它将消耗约600 MB的内存。如果我将两个数组包装成一个DataFrame对象(index=None),那么内存需求约为1600 MB 似乎额外的内存需求是#行*8字节用于串行存储,而#行*(#列+1)*8字节用于数据帧存

我感兴趣的是配置或修补pandas,使其内存开销尽可能低。在一个实验中,我创建了两个numpy数组,每个数组包含5000万个uint32值。以numpy格式存储这些阵列需要200+200=400 MB。如果我将其中一个数组包装成一个Series对象(index=None),那么它将消耗约600 MB的内存。如果我将两个数组包装成一个DataFrame对象(index=None),那么内存需求约为1600 MB


似乎额外的内存需求是#行*8字节用于串行存储,而#行*(#列+1)*8字节用于数据帧存储。您能解释一下序列和DataFrame对象以及原始
numpy
数组中到底存储了哪些额外数据吗?

额外存储是由于行索引存储为64位整数。对于您的用例,解决这个内存使用问题还有一个悬而未决的问题:

额外的存储是由于行索引存储为64位整数。对于您的用例,有一个尚未解决的问题来解决此内存使用问题: