当前位置: 首页 > 面试题库 >

计算数据框列中每个值的百分位数

姬振濂
2023-03-14
问题内容

我正在尝试a从DataFrame计算列中每个值的百分位数x

有没有更好的方法来编写以下代码?

x["pcta"] = [stats.percentileofscore(x["a"].values, i) 
                                    for i in x["a"].values]

我希望看到更好的性能。


问题答案:

似乎您想要Series.rank()

x.loc[:, 'pcta'] = x.rank(pct=True) # will be in decimal form

性能:

import scipy.stats as scs

%timeit [scs.percentileofscore(x["a"].values, i) for i in x["a"].values]
1000 loops, best of 3: 877 µs per loop

%timeit x.rank(pct=True)
10000 loops, best of 3: 107 µs per loop


 类似资料:
  • 问题内容: 我想创建一个将(排序的)列表作为其参数并输出包含每个元素的相应百分位数的列表的函数。 例如,return 。 任何人都可以请: 帮我纠正下面的代码吗?要么 提供比我的代码更好的替代方法,用于将列表中的值映射到它们对应的百分位数? 我当前的代码: 当前,如果我提交,则返回列表。 问题答案: 我认为您的示例输入/输出与典型的百分位数计算方法不符。如果将百分位数计算为“数据点的比例严格小于此

  • 本文向大家介绍awk 根据表格数据计算列中的值的中位数,包括了awk 根据表格数据计算列中的值的中位数的使用技巧和注意事项,需要的朋友参考一下 示例 给定一个;用作列定界符的文件。我们使用以下为GNU awk编写的程序在第二列中计算值的中位数。提供的输入是学生组的成绩列表: 该程序的输出为1。 请记住,它NR保存了要处理的行数,END因此在块中它保存了文件中的总行数。 awk的许多实现都没有对数组

  • 问题内容: 我正在尝试编写一个脚本,该脚本将显示每列中非空值的数量以及表中的总行数。 我发现了几种方法可以做到这一点: 和 但是这些要求我手动输入每个列名称。有没有一种方法可以对每个列执行此操作而不列出它们? 问题答案: 正如Paolo所说,但这是一个示例:

  • 问题内容: 我可以在不枚举的情况下计算每列的不同值吗? 说我有一个表,,,并没有其他的列。在没有明确提及这些列的情况下,我希望得到与以下结果相同的结果: 我怎样才能做到这一点 ? 问题答案: 我认为使用普通SQL可以轻松完成的最好工作就是运行这样的查询,以生成所需的查询,然后运行该查询。

  • 问题内容: 我有一个数据集 我希望能够返回类似的信息(显示唯一的值和频率) 问题答案: 使用和: 请参阅在线文档:http : //pandas.pydata.org/pandas-docs/stable/groupby.html 另外,正如所说,这里有很多方法可以给猫皮 如果要向原始数据帧添加频率,请使用transform返回对齐的索引:

  • 我想要工资的百分比栏为(工资/总工资)*100。 我试过这个,但它总是给0。 我甚至不会应用乘法运算。查询给出了应用乘以100时的错误。