【问题标题】:Collecting attributes from dask dataframe providers从 dask 数据帧提供程序收集属性
【发布时间】:2016-05-03 00:30:30
【问题描述】:

TL;DR:如何将分布式读取中的元数据(解析期间的错误)收集到 dask 数据帧集合中。

我目前有一个专有的文件格式,用于输入 dask.DataFrame。 我有一个接受文件路径并返回 pandas.DataFrame 的函数,dask.DataFrame 在内部成功地使用它来将多个文件加载到同一个 dask.DataFrame。

直到最近,我还在使用自己的代码将几个 pandas.DataFrames 合并为一个,现在我正在改用 dask。在解析文件格式时,我可能会遇到错误和某些条件,我想记录并与 dask.DataFrame 对象关联为元数据(日志、数据来源等)。

重要的是要注意,在合理的情况下,我会大量使用 MultiImdices(13 个索引级别,3 个列级别)。对于描述整个数据框而不是特定行的元数据,我使用的是属性。

使用自定义函数,我可以将元数据与实际 DataFrame 一起传递到元组中。使用 pandas,我可以将其添加到 _metadata 字段并作为 DataFrame 对象的属性。 使用 dask 框架时,如何从单独的 pandas.DataFrame 对象中收集元数据?

谢谢!

【问题讨论】:

    标签: python pandas dask


    【解决方案1】:

    这里有几个潜在的问题:

    • 如何将自定义格式的多个文件中的数据加载到单个 dask 数据帧中
    • A:您可以查看dask.delayed 来加载数据,并查看dask.dataframe.from_delayed 来将几个dask Delayed 对象转换为一个dask 数据框。或者,正如您现在可能正在做的那样,您可以使用dask.dataframe.from_pandasdask.dataframe.concat。请参阅此example notebook 使用自定义对象/函数中的 dask.delayed。

    • 如何将任意元数据存储到 dask.dataframe 中?

    • A:不支持。一般来说,如果可能,我建议使用不同的数据结构来存储元数据。如果有很多用例,那么我们应该考虑将其添加到 dask 数据帧中。如果是这种情况,请raise an issue。一般认为,在 dask.dataframe 考虑支持它之前,最好在 Pandas 中看到对此提供更好的支持。

    • 我在 Pandas 中大量使用多索引,如何将此工作流集成到 dask.dataframe 中?

    • A:很遗憾,dask.dataframe 目前不支持多索引。这些显然会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 1970-01-01
      • 2021-09-07
      • 2020-06-07
      • 1970-01-01
      • 2022-09-22
      • 2018-07-06
      相关资源
      最近更新 更多