替代 python pivot_table 两个变量的频率 table

alternative for python pivot_table for frequency table of two variables

对于这样的数据

import pandas as pd

df=pd.DataFrame({'group1': list('AABBCCAABBCC'),'group2':list('ZYYXYXXYZXYZ')})

我费了好大劲才弄明白,要使行和列的频率table,最常见的方法如下

print df.pivot_table(index='group1',columns='group2',aggfunc=len,fill_value=0)

我得到

group2  X  Y  Z
group1         
A       1  2  1
B       2  1  1
C       1  2  1

我只是想知道是否有任何 'faster' 方法可以生成相同的 table。并不是说它有什么问题,但我的意思是需要更少的输入(无需我编写自定义函数)

我只是将其与 R 进行比较,后者可以通过

获得相同的结果
 table(df$group1,df$group2)

与此相比,输入非默认参数,如 aggfuncfill_value 并输入参数名称,indexcolumns 似乎需要付出很多额外的努力。

总的来说,我的经验(非常有限)是 python 中的 R 等效函数在简洁性上非常相似。

任何关于替代方法的建议都会很棒。我需要用我的数据制作其中的几个 table。

这是另一种方法。

>>> df.groupby(['group1', 'group2']).group2.count().unstack().fillna(0)
group2  X  Y  Z
group1         
A       1  2  1
B       2  1  1
C       1  2  1
pd.crosstab(df['group1'],df['group2'])

这正是我要找的。最初搜索时没有找到它。