gpt4 book ai didi

pandas - 如何获得 pandas Multiindex 上两个子列之间的百分比?

转载 作者:行者123 更新时间:2023-12-01 11:16:58 29 4
gpt4 key购买 nike

我有这个,

       col1     col2    
no yes no yes
index
A 2 8 2 6
B 0 2 1 1

我想要yes栏的百分比,如下,

        col1  col2    
yes yes
col0
A 0.8 0.75
B 1.0 0.5

最佳答案

在算术方法中使用 axislevel 参数。

df.div(df.sum(axis=1, level=0), axis=1, level=0)

col1 col2
no yes no yes
A 0.2 0.8 0.25 0.75
B 0.0 1.0 0.50 0.50

df.div(df.sum(axis=1, level=0), axis=1, level=0).loc[:, pd.IndexSlice[:, 'yes']]

col1 col2
yes yes
A 0.8 0.75
B 1.0 0.50

变化

df.div(df.sum(axis=1, level=0), axis=1, level=0).xs('yes', axis=1, level=1)

col1 col2
yes yes
A 0.8 0.75
B 1.0 0.50

删除二级

df.div(df.sum(axis=1, level=0), axis=1, level=0).xs('yes', axis=1, level=1)

col1 col2
A 0.8 0.75
B 1.0 0.50

缩略版

df.div(df.sum(1, level=0), 1, 0).xs('yes', 1, 1)

col1 col2
A 0.8 0.75
B 1.0 0.50

详细信息

df.sum(axis=1, level=0)

col1 col2
A 10 8
B 2 2

然后我们可以将 div 指向使用这个结果的地方

df.div(df.sum(axis=1, level=0), axis=1, level=0)

col1 col2
no yes no yes
A 0.2 0.8 0.25 0.75
B 0.0 1.0 0.50 0.50

设置

df = pd.DataFrame(
[[2, 8, 2, 6], [0, 2, 1, 1]],
list('AB'),
pd.MultiIndex.from_product([['col1', 'col2'], ['no', 'yes']])
)

关于pandas - 如何获得 pandas Multiindex 上两个子列之间的百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49581206/

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