我正在使用以下数据框。
df = pd.DataFrame({'A' : ['aa','bb','aa','dd','ff','dd','aa','bb','dd','cc'], 'B' : ['xx','xx','yy','zz','xx','xx','yy','zz','zz','yy']})
创建一个像这样的表
A B
0 aa xx
1 bb xx
2 aa yy
3 dd zz
4 ff xx
5 dd xx
6 aa yy
7 bb zz
8 dd zz
9 cc yy
我可以添加第3列
df.groupby(['A','B']).size()
如下表所示:
A B
aa xx 1
yy 2
bb xx 1
zz 1
cc yy 1
dd xx 1
zz 2
ff xx 1
dtype: int64
我想得到以下输出:
A Count
aa 3
bb 2
cc 1
dd 3
ff 1
我无法获得以下输出,我也尝试过
df.groupby(['A','B']).B.agg('count').to_frame('Count').reset_index()
但是它无法获得输出。任何帮助深表感谢。
答案 0 :(得分:0)
更改此:
df.groupby(['A','B']).size()
对此:
df.groupby(['A']).size()
或者只是:
df['A'].value_counts()
因此:
import pandas as pd
df = pd.DataFrame({'A' : ['aa','bb','aa','dd','ff','dd','aa','bb','dd','cc'], 'B' : ['xx','xx','yy','zz','xx','xx','yy','zz','zz','yy']})
print(df.groupby(['A']).size())
输出:
A
aa 3
bb 2
cc 1
dd 3
ff 1
dtype: int64
答案 1 :(得分:0)
您正在采取太多步骤来简化一些事情。无需先按“ A”和“ B”分组,然后再执行操作。只需按“ A”分组并计数。
<textarea style="width:240px;height:50px;">
<div>a<span>b</span><b>c</b></div>
</textarea>