【问题标题】:How to Convert Dask DataFrame Into List of Dictionaries?如何将 Dask DataFrame 转换为字典列表?
【发布时间】:2020-04-08 15:51:14
【问题描述】:

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

我尝试了什么:

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

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

我得到的错误:

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

【问题讨论】:

    标签: python pandas dictionary parallel-processing dask


    【解决方案1】:

    你可以这样做

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

    它给你一个bag,你可以计算(如果它适合内存)或以其他方式操作。

    注意to_delayed/from_delayed应该不是必须的,还有to_bag方法,不过好像做的不对。

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

    【讨论】:

      【解决方案2】:

      试试这个:

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

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

      【讨论】:

        猜你喜欢
        • 2021-11-10
        • 2014-01-05
        • 2021-11-28
        • 1970-01-01
        • 1970-01-01
        • 2022-12-01
        相关资源
        最近更新 更多