假设我有以下数据帧:
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%
我研究了密度函数和其他类似的函数,但没搞清楚。
任何帮助都将不胜感激!
最佳答案
将crosstab
与normalize
一起使用
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/