使用大 pandas 数据框节省内存

Save memory with big pandas dataframe

我有一个巨大的数据框 (pandas):42 列,1900 万行和不同的数据类型。我将此数据框从 csv 文件加载到 JupyterLab。之后我对其进行了一些操作(添加更多列)并将其写回 csv 文件。许多列都是 int64。在其中一些列中,许多行是 。 您知道我可以在 int64 列上应用的技术/特定 dtype 以减小数据帧的大小并将其写入 csv 文件更有效地节省内存容量并减小 csv 文件的大小吗?

你能给我一些代码示例吗? [对于仅包含字符串的列,我将 dtype 更改为 'category'。] 谢谢

如果我对你的问题理解正确,问题是当你将 csv 文件写回磁盘时的大小。

csv 文件只是一个文本文件,因此列不与数据类型一起存储。在 pandas 中将 dtype 更改为什么并不重要,它将作为字符写回。这使得 csv 存储大量数值数据的效率非常低。

如果您出于某种其他原因不需要它作为 csv,请尝试使用不同的文件类型,例如 parquet。 (我发现这可以将我的文件大小减少 10 倍,但这取决于您的确切数据。)

如果您特别希望转换数据类型,请参阅此问题,但如前所述,这对您的 csv 文件大小没有帮助:Change column type in pandas