我正在使用以下数据框。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 B0 aa xx1 bb xx2 aa yy3 dd zz4 ff xx5 dd xx6 aa yy7 bb zz8 dd zz9 cc yy我可以添加第三列df.groupby(['A','B']).size()这给出了下表:A B aa xx 1 yy 2bb xx 1 zz 1cc yy 1dd xx 1 zz 2ff xx 1dtype: int64我想获得以下输出:A Countaa 3 bb 2 cc 1 dd 3 ff 1 我无法获得以下输出,我也尝试过df.groupby(['A','B']).B.agg('count').to_frame('Count').reset_index()但它无法获得输出。任何帮助深表感谢。
2 回答

慕盖茨4494581
TA贡献1850条经验 获得超11个赞
您采取了太多步骤来使事情变得更简单。无需先按“A”和“B”分组,然后再执行操作。只需按“A”分组并计数。
df.groupby(['A']).count()

慕莱坞森
TA贡献1810条经验 获得超4个赞
改变这个:
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
添加回答
举报
0/150
提交
取消