我正在尝试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时的错误。