【问题标题】:Pandas Crosstab with Percentage calculation带有百分比计算的 Pandas 交叉表
【发布时间】:2020-11-30 12:35:33
【问题描述】:

我有一个如下的 python 数据框。我想通过如下百分比计算进行交叉表/数据透视。

owner = ['a','a','a','b','b','b','c','c','c']
user = ['a','a','a','b','b','b','c','c','c']
used_hours = [75,25,0,500,250,250,400,50,50]
available_hours = [100,100,100,1000,1000,1000,500,500,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')

预期输出:

【问题讨论】:

标签: python pandas numpy pivot crosstab


【解决方案1】:

您可以在此处进行一些帖子格式设置,但定义您自己的 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

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 2016-12-02
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2016-09-06
    • 2022-11-21
    相关资源
    最近更新 更多