如何使用 Dask Pivot_table?

Amb*_*us9 7 pivot-table dataframe dask

我正在尝试在 Dask 上使用 Pivot_table 和以下数据框:

    date    store_nbr   item_nbr    unit_sales  year    month
0   2013-01-01  25       103665      7.0        2013      1
1   2013-01-01  25       105574      1.0        2013      1
2   2013-01-01  25       105575      2.0        2013      1
3   2013-01-01  25       108079      1.0        2013      1
4   2013-01-01  25       108701      1.0        2013      1
Run Code Online (Sandbox Code Playgroud)

当我尝试将 pivot_table 如下:

ddf.pivot_table(values='unit_sales', index={'store_nbr','item_nbr'}, 
                                  columns={'year','month'}, aggfunc={'mean','sum'})
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ValueError: 'index' must be the name of an existing column
Run Code Online (Sandbox Code Playgroud)

如果我只在索引和列参数上使用一个值,如下所示:

df.pivot_table(values='unit_sales', index='store_nbr', 
                                  columns='year', aggfunc={'sum'})
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ValueError: 'columns' must be category dtype
Run Code Online (Sandbox Code Playgroud)

MRo*_*lin 8

该错误告诉您 dask 数据框期望列关键字中使用的列是分类数据类型。它需要这样才能正确定义列,即使在惰性操作期间也是如此。您可以按如下方式完成此操作:

df = df.categorize(columns=['year'])
Run Code Online (Sandbox Code Playgroud)