Phi*_*ats 9 python pandas dask
如何将生成的dask.DataFrame转换为pandas.DataFrame(假设我完成了繁重的工作,并且只想将sklearn应用于我的聚合结果)?
MRo*_*lin 25
您可以调用.compute()方法将dask.dataframe转换为pandas数据帧:
df = df.compute()
Run Code Online (Sandbox Code Playgroud)
MRocklin 的答案是正确的,这个答案提供了有关何时适合从 Dask DataFrame 转换为 Pandas DataFrame 的更多详细信息(以及如何预测何时会导致问题)。
Dask DataFrame 中的每个分区都是一个 Pandas DataFrame。运行df.compute()会将 Dask DataFrame 中的所有底层分区合并为单个 Pandas DataFrame。如果 Pandas DataFrame 的大小大于计算机上的 RAM,就会出现问题。
如果df有 30 GB 的数据,而您的计算机有 16 GB 的 RAM,那么df.compute()将会因内存错误而崩溃。如果df只有 1 GB 数据,那就没问题了。
您可以运行df.memory_usage(deep=True).sum()来计算 DataFrame 正在使用的内存量。这会让您知道您的 DataFrame 是否足够小,可以合并为单个 Pandas DataFrame。
重新分区会更改 Dask DataFrame 中底层分区的数量。 df.repartition(1).partitions[0]在概念上类似于df.compute().
在执行大的过滤操作后,转换为 Pandas DataFrame 是特别可能的。如果您将 1000 亿行数据集过滤到 10,000 行,那么您可能只需切换到 Pandas API 即可。
| 归档时间: |
|
| 查看次数: |
6465 次 |
| 最近记录: |