pandas.pivot_基于列的表aggfunc

2024-09-29 01:34:00 发布

您现在位置:Python中文网/ 问答频道 /正文

给定数据作为以下形状的记录:

frame = pandas.DataFrame({
    'id': [1, 2, 3, 4, 5],
    'parent_id': [1, 1, 1, 2, 3],
    'metric': ['total_badgers', 'total_badgers', 'green_badgers', ...]
    'value': [2, 2, 1, 3, 4],
})

我正在将数据旋转为父ID x度量:

pivoted_frame = frame.pivot_table(index='parent_id',
                                  columns='metric',
                                  values='value')

现在我想将聚合更改为在metric上变化。我知道metric的可能值,因此我希望能够将某种dict传递给aggfunc的输出列以实现函数。然而aggfunc似乎只能对价值指标起作用

pivoted_frame = frame.pivot_table(index='parent_id',
                                  columns='metric',
                                  values='value',
                                  aggfunc={'total_badgers': np.sum, ...})

有没有一种简单的方法可以做到这一点,而不必自己分组、汇总和分解


Tags: columns数据idindexvaluetablemetricframe