【问题标题】:Convert Pandas dataframe to Dask dataframe将 Pandas 数据帧转换为 Dask 数据帧
【发布时间】:2017-02-04 21:59:48
【问题描述】:

假设我有 pandas 数据框:

df=pd.DataFrame({'a':[1,2,3],'b':[4,5,6]})

当我将其转换为 dask 数据框时,namedivisions 参数应该由什么组成:

from dask import dataframe as dd 
sd=dd.DataFrame(df.to_dict(),divisions=1,meta=pd.DataFrame(columns=df.columns,index=df.index))

TypeError: init() 缺少 1 个必需的位置参数:'name'

编辑: 假设我创建了一个 pandas 数据框,例如:

pd.DataFrame({'a':[1,2,3],'b':[4,5,6]})

同样如何创建 dask 数据框,因为它需要三个额外的参数 name,divisionsmeta

sd=dd.Dataframe({'a':[1,2,3],'b':[4,5,6]},name=,meta=,divisions=)

感谢您的回复。

【问题讨论】:

    标签: python pandas dataframe data-conversion dask


    【解决方案1】:

    我觉得你可以用dask.dataframe.from_pandas:

    from dask import dataframe as dd 
    sd = dd.from_pandas(df, npartitions=3)
    print (sd)
    dd.DataFrame<from_pa..., npartitions=2, divisions=(0, 1, 2)>
    

    编辑:

    我找到solution

    import pandas as pd
    import dask.dataframe as dd
    from dask.dataframe.utils import make_meta
    
    df=pd.DataFrame({'a':[1,2,3],'b':[4,5,6]})
    
    dsk = {('x', 0): df}
    
    meta = make_meta({'a': 'i8', 'b': 'i8'}, index=pd.Index([], 'i8'))
    d = dd.DataFrame(dsk, name='x', meta=meta, divisions=[0, 1, 2])
    print (d)
    dd.DataFrame<x, npartitions=2, divisions=(0, 1, 2)>
    

    【讨论】:

    • 感谢您的回复,但我想知道什么是名称和部门参数,同时创建 dask 数据框。我已经阅读了文档但无法理解。
    • 谢谢你,我会试着弄清楚并等待其他答案。
    • @jezrael 是正确的。您应该使用 from-pandas 方法创建一个 Dask.DataFrame。只需要在高级情况下使用构造函数
    • 我同意,这会很有趣。
    • @rey - 我找到了解决方案,请检查一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2021-11-16
    • 2016-09-27
    相关资源
    最近更新 更多