gpt4 book ai didi

python - 将总列的百分比添加到 Pandas pivot_table

转载 作者:太空宇宙 更新时间:2023-11-04 01:17:38 25 4
gpt4 key购买 nike

我似乎无法弄清楚如何将每个 date_submitted 组的总列百分比添加到下面的 pandas 数据透视表中:

In [177]: pass_rate_pivot

date_submitted audit_status
04-11-2014 audited 140
is_adserver 7
rejected 75
unauditable 257
04-18-2014 audited 177
is_adserver 10
pending 44
rejected 30
unauditable 226
04-25-2014 audited 97
is_adserver 5
pending 33
rejected 9
unauditable 355
Name: site_domain, dtype: int64

In [177]: pass_rate_pivot.to_dict()


Out[177]:
{('04-11-2014', 'audited'): 140,
('04-11-2014', 'is_adserver'): 7,
('04-11-2014', 'rejected'): 75,
('04-11-2014', 'unauditable'): 257,
('04-18-2014', 'audited'): 177,
('04-18-2014', 'is_adserver'): 10,
('04-18-2014', 'pending'): 44,
('04-18-2014', 'rejected'): 30,
('04-18-2014', 'unauditable'): 226,
('04-25-2014', 'audited'): 97,
('04-25-2014', 'is_adserver'): 5,
('04-25-2014', 'pending'): 33,
('04-25-2014', 'rejected'): 9,
('04-25-2014', 'unauditable'): 355}

最佳答案

这是你想要的吗? (对于每个组将元素除以该组中所有元素的总和):

In [62]: pass_rate_pivot.groupby(level=0).transform(lambda x: x/x.sum())
Out[62]:
04-11-2014 audited 0.292276
is_adserver 0.014614
rejected 0.156576
unauditable 0.536534
04-18-2014 audited 0.363450
is_adserver 0.020534
pending 0.090349
rejected 0.061602
unauditable 0.464066
04-25-2014 audited 0.194389
is_adserver 0.010020
pending 0.066132
rejected 0.018036
unauditable 0.711423
dtype: float64

如果您想将其添加为一列,您确实可以按照@exp1orer 的建议将两个系列concat 到一个数据帧:

pd.concat([pass_rate_pivot,pass_rate_pivot_pct], axis=1)

如果 pass_rate_pivot 已经是数据框,您可以分配一个新列,例如 pass_rate_pivot['pct'] = pass_rate_pivot['original column'].groupby(...

关于python - 将总列的百分比添加到 Pandas pivot_table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23375652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com