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

Bin*_*dez 7 python 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
Run Code Online (Sandbox Code Playgroud)

有没有办法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
Run Code Online (Sandbox Code Playgroud)

aso*_*uin 3

您想要重置索引:

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
Run Code Online (Sandbox Code Playgroud)

这打印:

  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
Run Code Online (Sandbox Code Playgroud)