python - 计算百分位使用熊猫
问题描述
我有一个循环遍历的数据框,从中获取信息,然后使用该信息来查找一些指标。我有类似的东西
数据框1:
| student 1 | student 2 |
| kate | john |
| david | kelly |
数据框2:
| student | A | B |
| kate | 17 | 8 |
| david | 20 | 15 |
| john | 17 | 40 |
基本上我会选择凯特和约翰的名字。然后我会遍历数据框 2 并寻找那两个学生。然后,我想找到它们在 A 列和 B 列中所处的百分位数。我做了类似的事情:
perc = stats.percentileofscore(student1Info[1],data['A'] , 'rank')
其中student1Info[1]
持有 17(凯特在 A 列中的值)
但它会导致错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我会很感激任何建议。另外,我可以使用类似的方法来查找日期时间的百分位数吗?例如,我有每个学生的一堆提交时间,我想找出学生提交时间所在的百分位数。
谢谢!!
解决方案
在函数中scipy.stats.percentilieofscore
,您需要使用数组作为第一个参数,使用分数作为第二个参数:
perc = stats.percentileofscore(data['A'], data.loc['kate', 'A'])
scipy.stats.percentileofscore(a, score, kind='rank')
推荐阅读
- swift - 当我点击单元格时,collectionView 内的视图没有隐藏
- python - 如何在具有多索引的数据框中选择具有 1:1 索引的值?
- c# - 生成全球唯一的哈希
- java - 如何使用 Java 在 Apache Flink 中对 DataStream 执行平均操作
- php - 有没有办法在不遍历所有数组的情况下从关联数组中获取值?
- java - 如果将 (required=false) 与 autowired 一起使用,@Autowired 和 @Qualifier 将不起作用
- javascript - 添加 if/else 语句后游戏组件不会绘制
- node.js - Heroku 部署错误(404 未找到:websocket-driver@0.7.2)
- python - 将 response.text 保存为 PDF
- angular - 自定义样式以在角度 6 上对元素进行条带化,不影响 UI