python - python / pandas中多列的百分位数范围输出
问题描述
我有一个数据集 df,我想在其中展示列中给定值的第 60、第 70 和第 90 个百分位值
数据
type value
Hello 1
Hello 2
Hello 3
Hello 5
Hello 5
Hello 6
Hello 8
Hello 8
Hello 3
OK 1
OK 1
OK 2
OK 2
期望的
type 0.6 0.7 0.9
Hello 5 5.6 8
OK 1.8 2 2
正在做
我的方法是利用numpy中的百分位函数:
import numpy as np
print np.percentile(df,60)
print np.percentile(df,70)
print np.percentile(df,90)
这可行,但是,输出单独显示这些值,并且不维护数据集中的其他列
解决方案
>>> df
type value
0 Hello 1
1 Hello 2
2 Hello 3
3 Hello 5
4 Hello 5
5 Hello 6
6 Hello 8
7 Hello 8
8 Hello 3
9 OK 1
10 OK 1
11 OK 2
12 OK 2
>>> df.groupby("type").quantile([0.6, 0.7, 0.9]).unstack(1)
value
0.6 0.7 0.9
type
Hello 5.0 5.6 8.0
OK 1.8 2.0 2.0
推荐阅读
- python - Pynput 取消非 Pynput 保持的输入
- python - 修复 excel/csv 导入导出
- python - 极线不通过同一图像中的点
- javascript - 如何防止提交表单后显示“请填写此字段”工具提示
- c - C - 为什么我的字符串在发送到函数时返回 Null?
- python - py2neo-v2 merge_one、create_unique、find_one 的等效方法有哪些?
- javascript - 如何使用正则表达式过滤掉没有逗号的任何内容?
- pandas - 熊猫和过滤
- java - Android studio,数据绑定在打开活动时不起作用
- elasticsearch - 字符串数组的内部结构与 ElasticSearch 中的串联字符串