从dask数据帧提供程序收集属性

时间:2016-01-26 12:31:17

标签: python pandas dask

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对象中收集元数据?

谢谢!

1 个答案:

答案 0 :(得分:1)

这里有一些潜在的问题:

  • 如何将自定义格式的多个文件中的数据加载到单个数据库中
  • A :您可以查看Delayed以加载数据,并dask.dataframe.from_pandas将多个dask dask.dataframe.concat对象转换为单个dask数据帧。或者,正如您现在可能正在做的那样,您可以使用{{1}}和{{1}}。关于使用自定义对象/函数中的dask.delayed,请参阅此HTML line break

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

  • A :不支持此功能。通常,我建议使用不同的数据结构来存储元数据(如果可能)。如果有很多用例,那么我们应该考虑将它添加到dask数据帧中。如果是这种情况,那么请example notebook。一般认为,在dask.dataframe考虑支持它之前,在Pandas中看到更好的支持是件好事。

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

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