如何在pandas中对行进行分组?

时间:2018-06-12 20:03:39

标签: python pandas dataframe

这是我尝试过的,也是我想要达到的结果。我正在使用jupyter来执行此代码:

import pandas as pd

df = pd.DataFrame( {'a':['A','A','B','B','B','C'], 'b':[1,2,5,5,4,6]})

df

输出:

  a  b
0 A  1
1 A  2
2 B  5
3 B  5
4 B  4
5 C  6

我进一步尝试了:

s = df[['a','b']].groupby(df['a']).sum()

     b
a
A    3
B    14
C    6

这与我想要的行分组类似,但我不明白为什么标签b是向上的,如果它不在同一行中? 此外,当我遍历s时,我只得到b,当我迭代彻底a['b']时,我得到所有数量。但是,我希望所有字母都重复s['a']并获取A,B,C,但这会引发错误。谢谢

1 个答案:

答案 0 :(得分:2)

听起来你正在寻找的是DataFrame.reset_index

In [15]: df.groupby('a').sum().reset_index()
Out[15]:
   a   b
0  A   3
1  B  14
2  C   6