繁体   English   中英

如何将 Dask DataFrame 转换为字典列表?

[英]How to Convert Dask DataFrame Into List of Dictionaries?

我需要将 dask dataframe 转换为字典列表作为 API 端点的响应。 我知道我可以将 dask dataframe 转换为 pandas,然后从那里我可以转换为字典,但最好是 map,然后将每个分区连接到一个字典。

我尝试了什么:

df = dd.read_csv(path, usecols=cols)

dd.compute(df.to_dict(orient='records'))

我得到的错误:

AttributeError: 'DataFrame' object has no attribute 'to_dict'

你可以这样做

import dask.bag as db
db.from_delayed(df.map_partitions(pd.DataFrame.to_dict, orient='records'
    ).to_delayed())

它为您提供了一个可以计算(如果它适合内存)或以其他方式操作的

注意 to_delayed/from_delayed 应该不是必须的,还有一个to_bag方法,但它似乎没有做正确的事情。

此外,您并没有真正从dataframe model 中获得太多,您可能想从db.read_text和内置的 CSV 模块开始。

尝试这个:

data=list(df.map_partitions(lambda x:x.to_dict(orient="records")))

它将返回一个字典列表,其中每一行都将转换为字典。

Kunal Bafna的答案最容易实现并且依赖项更少

data=list(df.map_partitions(lambda x:x.to_dict(orient="records")))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM