查找数据框中每列的平均值,按标签分组,不包括一个标签

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查找数据框中每列的平均值,按标签分组,不包括一个标签相关的知识,希望对你有一定的参考价值。

我有一个如下所示的数据帧:

    CPU Memory Disk  Label
0    21     28   29      0
1    46     53   55      1
2    48     45   49      2
3    48     52   50      3
4    51     54   55      4
5    45     50   56      5
6    50     83   44     -1 

我想要的是groupby并找到每个标签的平均值。到目前为止,我有这个dataset.groupby('Label')['CPU', 'Memory', 'Disk'].mean()工作得很好,得到的结果如下:

Label           CPU     Memory       Disk 
    -1     46.441176  53.882353  54.176471
     0     48.500000  58.500000  60.750000
     1     45.000000  51.000000  60.000000
     2     54.000000  49.000000  56.000000
     3     55.000000  71.500000  67.500000
     4     53.000000  70.000000  71.000000
     5     21.333333  30.000000  30.666667

我唯一没有找到的是如何排除标记为-1的所有内容。有没有办法做到这一点?

答案

您可以在分组之前过滤数据帧:

# Exclude rows with Label=-1
dataset = dataset.loc[dataset['Label'] != -1]
# Group by on filtered result
dataset.groupby('Label')['CPU', 'Memory', 'Disk'].mean()

以上是关于查找数据框中每列的平均值,按标签分组,不包括一个标签的主要内容,如果未能解决你的问题,请参考以下文章

试图弄清楚如何使用列表返回数据框中每一列的平均值

计算循环中每列的中位数

如何获得每列的最大值?

如何计算熊猫数据框中每一列的唯一性?

用 Python 用该列的平均值减去数据框中的每一列

获取pandas数据框中每一列的前k个元素的索引的快速方法