作为我们生产的一部分,我们生成相当大的 xlsx 文件。
大约 1000 列和 200k 行。
我们注意到旧版本的 pandas/openpyxl 在生成这些文件时在内存和时间效率方面做得更好。
使用:
openpyxl = 3.0.7 和 3.1.2
熊猫=1.2.4
运行时间约为半小时,输出文件约为 100mb,RAM 使用量约为 4GB
使用
openpyxl = 3.1.4 和 3.1.2
熊猫=2.1.4
需要 2 小时,输出文件为 400mb,占用了几乎 16GB 的所有可用 RAM。
我会做更多的实验,无论这取决于 pandas 还是 openpyxl,但我想知道是否有人知道这里发生了什么。
编辑:
我已将 openpyxl 更新到 3.1.2,它仍然可以以较小的文件大小快速打印。
我还使用 pandas 2.1.4 降级到 3.1.2,但仍然需要很长时间,所以问题似乎出在 pandas 上。
事实证明,性能没有差异。 差异是因为在旧环境中它使用 xlsxwriter 而在新环境中它使用 openpyxl。
我应该更好地研究 pd.show_versions() 输出(pandas github 要求)