pandas 一列被其他列细分

pandas breakdown of a column by other columns

假设我有以下数据框:

    distributor   channel
 1   Warner        CH1
 2   Warner        CH2
 3   Warner        CH2
 4   Warner        CH3
 5  Columbia       CH4

我想要的是获取每个分销商的渠道分布,在这个简单的例子中:

    distributor  CH1 CH2 CH3 CH4 
1    Warner      25% 50% 25%  0%
2   Columbia      0% 0%  0%  100%

我查看了密度函数和其他类似函数,但无法弄清楚。

任何帮助将不胜感激!

crosstabnormalize

结合使用
pd.crosstab(df.distributor,df.channel,normalize='index')
Out[506]: 
channel       CH1  CH2   CH3  CH4
distributor                      
Columbia     0.00  0.0  0.00  1.0
Warner       0.25  0.5  0.25  0.0