计算百分比使用熊猫

时间:2019-11-30 20:54:32

标签: python pandas

我正在遍历一个数据框,从中获取信息,然后使用该信息查找一些指标。我有类似

数据框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().

我将不胜感激。此外,我是否可以使用类似的方法来查找日期时间的百分位数。例如,我为每个学生设置了很多提交时间,并且我想查找学生提交时间所占的百分比。

谢谢!

1 个答案:

答案 0 :(得分:1)

在函数scipy.stats.percentilieofscore中,您需要使用数组作为第一个参数,将score作为第二个参数:

perc = stats.percentileofscore(data['A'], data.loc['kate', 'A'])
  

scipy.stats.percentileofscore(a,score,kind ='rank')