我有一个数据框,如下所示:
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
的东西。有办法吗?
答案 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()