Python 熊猫性能:一列中有多个数据类型,还是分成不同的数据类型?

Python 熊猫性能:一列中有多个数据类型,还是分成不同的数据类型?,python,pandas,Python,Pandas,我有一个大熊猫数据框。20毫米行,30列。这些行有很多数据,每行都有一个使用特定列的“类型”。因此,我目前设计的DataFrame中有一些列是混合数据类型的,不管行是哪种类型 我的问题是,就性能而言,我应该将混合的dtype列拆分为两个单独的列,还是将它们作为一个列保留?我在保存这些数据帧(为了pickle)和尽可能提高效率方面遇到了问题 列可以是当前构造的float/str、float/int、float/int/str的混合体。在我看来,这可能取决于后续的用例。但是,我想我会让每一列都是唯一

我有一个大熊猫数据框。20毫米行,30列。这些行有很多数据,每行都有一个使用特定列的“类型”。因此,我目前设计的DataFrame中有一些列是混合数据类型的,不管行是哪种类型

我的问题是,就性能而言,我应该将混合的dtype列拆分为两个单独的列,还是将它们作为一个列保留?我在保存这些数据帧(为了pickle)和尽可能提高效率方面遇到了问题


列可以是当前构造的float/str、float/int、float/int/str的混合体。

在我看来,这可能取决于后续的用例。但是,我想我会让每一列都是唯一的类型,否则像group by with totals这样的函数和其他常见的Pandas函数根本就不起作用。

你应该总是将它们分开;混合数据类型是速度慢的主要原因大小限制如何?我在试图节省开支时,遇到了某种尺寸限制。这会大大增加尺寸吗?我永远不会在泡菜里存钱;使用HDF5(甚至csv比pickle更好)。您可以将读取和写入分块。pickle能够保存HDF5在我上次尝试中没有保存的文件。HDF5在10mm行出错。这是因为您有混合的数据类型;总是一个很坏的主意。我会先把它修好。你所做的任何代码都会快几个数量级。