假设我有以下数据帧:

    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

关于python - Pandas 按其他列分割,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53048643/

10-08 23:57