我正在遍历一个数据框,从中获取信息,然后使用该信息查找一些指标。我有类似
数据框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().
我将不胜感激。此外,我是否可以使用类似的方法来查找日期时间的百分位数。例如,我为每个学生设置了很多提交时间,并且我想查找学生提交时间所占的百分比。
谢谢!
答案 0 :(得分:1)
在函数scipy.stats.percentilieofscore
中,您需要使用数组作为第一个参数,将score作为第二个参数:
perc = stats.percentileofscore(data['A'], data.loc['kate', 'A'])
scipy.stats.percentileofscore(a,score,kind ='rank')