这是我尝试过的,也是我想要达到的结果。我正在使用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
,但这会引发错误。谢谢
答案 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