聚合行并创建列作为值的计数

时间:2013-10-01 14:06:20

标签: python pandas

我有一个类似于:

的数据框
   tt  oo
0  g  gh
1  g  jj
2  g  gh
3  t  gh
4  t  gh

我想最终得到一个新的数据框,汇总在'tt'上,给出'oo'列的计数,使它看起来像:

   gh  jj
g  2   1
t  2   0

我尝试了一个数据透视表,但结果是“索引包含重复条目错误”。     吨

2 个答案:

答案 0 :(得分:3)

dfrm1 = pandas.DataFrame({'tt':['g', 'g', 'g', 't', 't'], 
                          'oo':['gh', 'jj', 'gh', 'gh', 'gh']})

dfrm1.groupby('tt')['oo'].value_counts().unstack(level=1).fillna(0.0)

答案 1 :(得分:0)

您可以使用groupby在一行中执行此操作:

df.groupby('tt')['oo'].value_counts()
Out[8]: 
tt    
g   gh    2
    jj    1
t   gh    2
dtype: int64