pandas - 排序后磁盘上压缩文件的大小大幅增加?
问题描述
我有一个 pandas 数据框,我将它作为 GZIP 存储在磁盘上。在 RAM 上它大约 90GB,当我使用 pandas.to_parquet 将它保存为 gzip 时,它压缩到大约 3GB。
我最近在不同的列上使用 pandas.sort_values 对其进行了排序,当我使用相同的方法保存它时,磁盘上的这个大小突然变成了 60GB。
为什么会发生这种情况,是否有不同的排序/保存方法来防止这种情况发生?
解决方案
我不得不猜测您的文件以前是在不同的列上排序的,并且该列的内容与紧接在前的记录的匹配是压缩的重要部分。然后,当您对不同的列进行排序时,另一列被有效地随机化,因此相似的值不再彼此靠近。您排序的列可能会比以前有更好的压缩,但与最初排序的列相比,这种影响很小。这就是扼杀压缩的原因。
推荐阅读
- python - 如何使用 PyWinAuto 单击 ListView 项?
- reactjs - 反应钩子形式 - useForm 上的钩子调用无效
- django - 在一行Django中查询中间模型
- python - 创建类后无法添加`__init_subclass__`
- discord.py - 我如何提及使用 discord.py 的人?
- cypress - 即使使用了 --spec 参数,cypress 也会运行所有测试文件
- javascript - 除非向导的每个选项卡都经过验证,否则阻止向导下一步按钮继续
- php - 如何在 database.with SELECT 语句中保留 NULL 数据?
- javascript - 有没有办法将 insertBefore() 与 getElementsByClassName 而不是 getElementById 一起使用?
- sql - 单独放置 WHERE 语句以使 UNION 函数工作