python - 查找数据框中每一列的平均值,按列分组,排除一个值
问题描述
我有一个如下所示的数据框:
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
. 有没有办法做到这一点?
解决方案
您可以在分组之前过滤数据框:
# Exclude rows with Label=-1
dataset = dataset.loc[dataset['Label'] != -1]
# Group by on filtered result
dataset.groupby('Label')['CPU', 'Memory', 'Disk'].mean()
推荐阅读
- php - 如何在另一个集合中有一个集合?
- python - 如何放置 PIL.Image.Image 图像 QPushButton(PyQt)
- python - 使用过滤定义关联表上的关系
- mysql - 将 mysql 数据导入 HDFS 时出现异常
- docker - Nginx 反向代理(在 Docker 中)到 Web 应用程序(也在 Docker 中)
- python - 如何在python中查找上个月连续7天的列表
- java - 将图像插入 BYTES 列 - 类型“二进制”不存在
- swift - 如何编写在对象生命周期后期计算的 swift 属性
- python - 多处理在 python 中不起作用。脚本一直在运行,不会停止
- python - 如何根据值的整体显着性水平对列进行优先级排序?