如何解决带有百分比计算的Pandas Crosstab
我有一个如下所示的python数据框。我想使用百分比计算进行交叉表/数据透视,如下所示。
owner = ['a','a','b','c','c']
user = ['a','c']
used_hours = [75,25,500,250,400,50,50]
available_hours = [100,100,1000,500]
data = {'Owner':owner,'User':user,'used_hours':used_hours,'available_hours':available_hours}
df = pd.DataFrame.from_dict(data)
当前输出:
df = pd.crosstab(df["Owner"],df["User"],normalize='index')
预期输出:
解决方法
您可以在此处进行一些后期格式化,但定义自己的to_percent
函数并对其进行汇总:
def to_percent(x):
return x * 100
print(pd.crosstab(df.Owner,df.User,values=(df.used_hours / df.available_hours),aggfunc=to_percent))
输出:
User a b c
Owner
a 75.0 25.0 0.0
b 50.0 25.0 25.0
c 80.0 10.0 10.0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。