gpt4 book ai didi

python - MultiIndex 数据帧的平均值

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:31 27 4
gpt4 key购买 nike

我有以下数据框

                 A     B    C    D    E    F
Algo T
X 1 0.2 0.2 0.0 0.0 0.2 0.2
2 0.0 0.0 0.0 0.0 0.0 0.0
Y 15 0.7 1.4 1.5 1.0 0.7 1.4
30 0.5 0.3 1.0 0.4 0.5 0.4
45 0.2 0.0 0.6 0.0 0.2 0.0
Z 30 1.8 2.3 0.6 0.7 1.8 2.3
60 1.0 0.5 0.3 0.4 1.0 0.5
90 0.3 0.2 0.0 0.2 0.4 0.2

我想知道如何在底部显示一行,显示 A、B、C、... F 列的平均值

                 A     B    C    D    E    F
Algo T
X 1 0.2 0.2 0.0 0.0 0.2 0.2
2 0.0 0.0 0.0 0.0 0.0 0.0
Y 15 0.7 1.4 1.5 1.0 0.7 1.4
30 0.5 0.3 1.0 0.4 0.5 0.4
45 0.2 0.0 0.6 0.0 0.2 0.0
Z 30 1.8 2.3 0.6 0.7 1.8 2.3
60 1.0 0.5 0.3 0.4 1.0 0.5
90 0.3 0.2 0.0 0.2 0.4 0.2
Mean ... ... ... ... ... ...

最佳答案

您可以使用 .loc 分配平均行。 MultiIndex 的值是元组,因此相应地分配:

df.loc[('Mean', ''), :] = df.mean()

输出:

              A       B    C       D    E      F
Algo T
X 1 0.2000 0.2000 0.0 0.0000 0.2 0.200
2 0.0000 0.0000 0.0 0.0000 0.0 0.000
Y 15 0.7000 1.4000 1.5 1.0000 0.7 1.400
30 0.5000 0.3000 1.0 0.4000 0.5 0.400
45 0.2000 0.0000 0.6 0.0000 0.2 0.000
Z 30 1.8000 2.3000 0.6 0.7000 1.8 2.300
60 1.0000 0.5000 0.3 0.4000 1.0 0.500
90 0.3000 0.2000 0.0 0.2000 0.4 0.200
Mean 0.5875 0.6125 0.5 0.3375 0.6 0.625

如果您想要每个组的单独平均值,请连接。这里我们可以使用 .agg 指定一个列表和 stack 来获得我们需要的 MultiIndex 而无需太多手动操作。您现在可以泛化到多个聚合函数 .agg(['mean', 'std', 'size']) 并且它将在 T< 中添加所有具有聚合函数的函数 索引级别。

import pandas as pd
pd.concat([df, df.groupby(level=0).agg(['mean']).stack(1)])

A B C D E F
Algo T
X 1 0.200000 0.200000 0.000000 0.000000 0.200000 0.2
2 0.000000 0.000000 0.000000 0.000000 0.000000 0.0
Y 15 0.700000 1.400000 1.500000 1.000000 0.700000 1.4
30 0.500000 0.300000 1.000000 0.400000 0.500000 0.4
45 0.200000 0.000000 0.600000 0.000000 0.200000 0.0
Z 30 1.800000 2.300000 0.600000 0.700000 1.800000 2.3
60 1.000000 0.500000 0.300000 0.400000 1.000000 0.5
90 0.300000 0.200000 0.000000 0.200000 0.400000 0.2
X mean 0.100000 0.100000 0.000000 0.000000 0.100000 0.1
Y mean 0.466667 0.566667 1.033333 0.466667 0.466667 0.6
Z mean 1.033333 1.000000 0.300000 0.433333 1.066667 1.0

关于python - MultiIndex 数据帧的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54812880/

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