我正在使用以下數(shù)據(jù)框。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']})它創(chuàng)建了一個(gè)這樣的表 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 我無(wú)法獲得以下輸出,我也嘗試過df.groupby(['A','B']).B.agg('count').to_frame('Count').reset_index()但它無(wú)法獲得輸出。任何幫助深表感謝。
2 回答

慕蓋茨4494581
TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
您采取了太多步驟來使事情變得更簡(jiǎn)單。無(wú)需先按“A”和“B”分組,然后再執(zhí)行操作。只需按“A”分組并計(jì)數(shù)。
df.groupby(['A']).count()

慕萊塢森
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
改變這個(gè):
df.groupby(['A','B']).size()
對(duì)此:
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
添加回答
舉報(bào)
0/150
提交
取消