python - 在 groupby 中的每条记录上显示组

标签 python pandas group-by

我正在使用 pandas 和 groupby 进行聚合。我正在做以下事情:

data = {'ac' : ['a','a','a','a','a','a','a','a','b','b','b','b','b'],
        'cls'   ['wwww','wwww','wwww','xxxx','xxxx','zzzz','zzzz','yyyy','wwww','xxxx','zzzz','zzzz','yyyy'],
        'pl' : [1,1,1,1,1,1,1,1,1,1,1,1,1]}

df = pd.DataFrame(data)

grouped = df.groupby(['ac','cls']).agg({'pl':np.sum})


           pl
    ac cls     
    a  wwww   3
       xxxx   2
       yyyy   1
       zzzz   2
    b  wwww   1
       xxxx   1
       yyyy   1
       zzzz   2

有没有一种方法可以执行 groupby ,它会填充 ac 列,使其如下所示?

             pl
    ac cls     
    a  wwww   3
    a  xxxx   2
    a  yyyy   1
    a  zzzz   2
    b  wwww   1
    b  xxxx   1
    b  yyyy   1
    b  zzzz   2

最佳答案

你想重置索引:

import pandas as pd

import numpy as np

data = {'ac': ['a','a','a','a','a','a','a','a','b','b','b','b','b'],
        'cls': ['wwww','wwww','wwww','xxxx','xxxx','zzzz','zzzz','yyyy','wwww','xxxx','zzzz','zzzz','yyyy'],
        'pl': [1,1,1,1,1,1,1,1,1,1,1,1,1]}

df = pd.DataFrame(data)

grouped = df.groupby(['ac','cls']).agg({'pl':np.sum})
grouped.reset_index(inplace=True)

print grouped

这打印:

  ac   cls  pl
0  a  wwww   3
1  a  xxxx   2
2  a  yyyy   1
3  a  zzzz   2
4  b  wwww   1
5  b  xxxx   1
6  b  yyyy   1
7  b  zzzz   2

关于python - 在 groupby 中的每条记录上显示组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44333109/

相关文章:

python - 如何强制 scipy 使用 Adams 进行集成?

python - 读取 Excel 单元格值而不是计算它的公式 -openpyxl

MySQL 按小时分组

python - 如何跳出函数并返回循环?

python - 如何修复 "ImportError: cannot import name ' StringIO'"

python - 有没有办法使用 groupby 来计数和计算文本列的平均值?

python - 使用 pip 在 Mac 上安装 Pandas

python - 基于具有序列的列条目转置数据框

python - Pandas:从另一个 df 创建一个新的 df 包含组内的特定值

mySQL 多重连接,结果行为空