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

pandas:查找给定列的百分位数统计

连曜灿
2023-03-14
问题内容

我有一个pandas数据框my_df,在这里我可以找到给定列的mean(),median(),mode():

my_df['field_A'].mean()
my_df['field_A'].median()
my_df['field_A'].mode()

我想知道是否可以找到更详细的统计数据,例如90%?谢谢!


问题答案:

您可以使用pandas.DataFrame.quantile()函数,如下所示。

import pandas as pd
import random

A = [ random.randint(0,100) for i in range(10) ]
B = [ random.randint(0,100) for i in range(10) ]

df = pd.DataFrame({ 'field_A': A, 'field_B': B })
df
#    field_A  field_B
# 0       90       72
# 1       63       84
# 2       11       74
# 3       61       66
# 4       78       80
# 5       67       75
# 6       89       47
# 7       12       22
# 8       43        5
# 9       30       64

df.field_A.mean()   # Same as df['field_A'].mean()
# 54.399999999999999

df.field_A.median() 
# 62.0

# You can call `quantile(i)` to get the i'th quantile,
# where `i` should be a fractional number.

df.field_A.quantile(0.1) # 10th percentile
# 11.9

df.field_A.quantile(0.5) # same as median
# 62.0

df.field_A.quantile(0.9) # 90th percentile
# 89.10000000000001


 类似资料:
  • 问题内容: 我想通过numpy percentile()函数通过熊猫的agg()函数,就像我在下面对其他各种numpy统计函数所做的那样。 现在我有一个数据框,看起来像这样: 我的代码如下所示: 上面的代码有效,但我想做类似的事情 即指定各种百分位数从agg()返回 应该怎么做? 问题答案: 也许不是超级有效,但是一种方法是自己创建一个函数: 然后将其包含在您的: 请注意,虽然这是 应 该如何做的

  • 输入是https://query.data.world/s/Hfu_PsEuD1Z_yJHmGaxWTxvkz7W_b0 输出应该是

  • 认为 例1:数字是37,数字之和是37=10 例2:数字是1000,数字之和是1。 我的第一种方法是将数字转换成字符串,然后再转换成字符数组。有了它,我可以使用流,在其中我将字符转换为int值,让我执行求和。 但是流API中有什么实用方法可以改进它吗?

  • 问题内容: 我有一个由DatetimeIndex索引的Pandas数据框: 我想找到最接近特定时间的行: 并找到它有多近。到目前为止,我已经基于从所有时间中减去我想要的时间并找到最小的绝对值的想法进行了各种尝试,但是似乎没有一个奏效。 例如: 给出一个错误,我认为是由于Datetime索引上的+/-发生了偏移,因此我尝试将索引放入另一列中,然后进行处理: 这似乎可行,但是要做我想做的事,我需要得到

  • 所以我必须写一个程序,找到给定范围之间的所有回文数。程序必须使用numDigits()方法,该方法接受int数并返回该int的位数。 一个isPalindrome()方法,它将接受一个int数字,并返回一个布尔值true或false,无论该数字是否回文 我在这里编码了一个numDigit()方法: 我知道如何用另一种方法找到回文,但作业是专门针对这种技术的。我如何实现这个numDigit()方法来

  • 问题内容: 我正在尝试从DataFrame计算列中每个值的百分位数。 有没有更好的方法来编写以下代码? 我希望看到更好的性能。 问题答案: 似乎您想要: 性能: