使用多列作为索引对dask数据框进行透视

3

我有一个以下格式的Dask DataFrame:

date       hour device  param     value
20190701    21  dev_01  att_1   0.000000
20190718    22  dev_01  att_2   20.000000
20190718    22  dev_01  att_3   18.611111
20190701    21  dev_01  att_4   18.706083
20190718    22  dev_01  att_5   23.333333

我正在尝试使用Dask.DataFrames.pivot_table() API对数据框进行透视。但是,我想将“日期”、“小时”和“设备”用作索引(即,在透视表中,每一行都可以通过日期、小时和设备标识符唯一地标识):

ddf.pivot_table(index = ['date', 'hour', 'device'], columns='param', values='value')

然而,它正在出现以下错误:
'index' must be the name of an existing column

根据API文档(这里),我理解参数“index”只接受单一列的名称(而非列表),因此出现了该错误。
是否存在其他替代方法来使用多个列作为dask dataframe的索引进行数据透视?
1个回答

3

如文档字符串中所述,您要枢轴的列必须是单个列,并且必须是分类数据类型。因此,要实现您想要的效果,您需要将三列转换为单个分类列。

使用常规 Pandas 语法可以实现此操作,但很可能需要对数据进行全面遍历以获取类别。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接