我正在使用以下數據框。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
提交
取消