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

时间:2019-02-13 11:25:11

标签: python-3.x dataframe pandas-groupby

我有一个数据框,如下所示:

    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 

我想要的是grouby并找到每个标签的平均值。到目前为止,我有这个 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的东西。有办法吗?

1 个答案:

答案 0 :(得分:2)

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

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