【问题标题】:Operating on large number of dataframes对大量数据帧进行操作
【发布时间】:2023-04-07 03:25:02
【问题描述】:

我有大量的 pandas 数据框 > 5000 个形状为 3000x3000 的浮点值,密度为 60%(即 40% 的值是 NaN)。这些框架具有相同的索引和列。

我想在这些框架上进行操作,例如添加所有这些。如果我按顺序执行此操作,则需要 20 多分钟。有没有有效的方法可以对它们进行操作(例如求和)?

知道这些数据帧不密集,我怎样才能使这个进程的内存有效?

【问题讨论】:

  • 您是否需要一次处理所有列?您可以按列标题阅读df,并重复一组列宽
  • 有pyspark之类的大数据处理工具
  • 我不会一次需要所有的列。

标签: python pandas bigdata data-science


【解决方案1】:

如果您的所有数据都具有相同的形状,那么我看不出为此使用 pandas DataFrames 列表的意义。

您可以通过最少的工作从 Python 中获得最大的性能,只需将数据帧堆叠成一个 3D Numpy 维度数组(3000、3000、5000),然后在最后一个轴上进行求和。

由于这需要 > 360 GB 的 RAM(至少 180 GB 用于加载的数据帧,180 GB 用于堆叠 Numpy 阵列),这可能超出了通常的桌面工作负载,您可能需要查看大数据工具cmets中提到的。

【讨论】:

  • 感谢 wm。知道 pyspark 如何在这方面为我提供帮助吗?
  • 很遗憾没有。也许@Konrad Sitarz 可以写一个答案?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-29
  • 2020-08-20
  • 2020-08-20
  • 2019-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多