Pandas 1.3版本RAM与数据集大小比例经验法则是否仍适用?
Pandas 1.3版本5-10倍运行内存经验法则有效性说明
该由Pandas创造者Wes McKinney在2017年提出的经验法则仅适用于Pandas 1.0之前的版本,在Pandas 1.3版本中不再生效。
Pandas 1.0至1.3版本核心内存效率优化改动
- 新增可空数据类型系列,解决了旧版本中存在空值时整数、布尔类型会被强制提升为高内存占用
object类型的问题,同维度整数列内存占用最高可降低75%,布尔列内存占用最高可降低87.5% - 1.3版本上线稳定版
StringDtype,替代原先默认的object类型存储字符串数据,相同内容下内存占用最高可降低5倍,同时字符串矢量化操作的中间内存开销大幅降低 - 优化了分组、切片、合并等常见操作的内部内存复制逻辑,操作过程中的临时内存占用从旧版本的3-5倍数据集大小,降低至1-2倍数据集大小
- 新增
memory_usage(deep=True)方法支持精确统计DataFrame各列的实际内存占用,用户可直接量化评估运行内存需求,无需依赖通用经验法则
旧版本经验法则的提出背景是当时Pandas存在字符串默认存为高开销
object类型、空值触发强制类型提升、操作过程大量不必要内存复制的问题,上述问题在1.3版本均已修复,常规场景下仅需准备数据集大小1-2倍的运行内存即可,复杂聚合场景最高也仅需3倍左右。
内容的提问来源于stack exchange,提问作者Powers
相关产品推荐
相关产品推荐

