python--pandas 分位数

博客主要围绕箱形图分析展开,介绍了利用pandas计算分位数来快速识别异常值,还给出了计算分位数的公式pos=1+(n−1)∗q ,并举例说明可通过函数直接求结果或按公式计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搞懂箱形图分析,快速识别异常值!

  1. pandas 分位数
    df.quantile(q=0.75)
    计算分位数: p o s = 1 + ( n − 1 ) ∗ q pos = 1+(n-1)*q pos=1+(n1)q
    p o s = i n t e g e r + f l o a t ( 整 数 部 分 + 小 数 部 分 ) pos = integer + float(整数部分 + 小数部分) pos=integer+float+
 ans = df[integer-1] + float * (df[integer] - df[integer - 1])

举个例子:
定义一个DataFrame

df = pd.DataFrame({'key1':np.arange(0,6),
                  'key2':np.arange(6,12)})
print(df)
key1  key2
0     0     6
1     1     7
2     2     8
3     3     9
4     4    10
5     5    11
  • 通过函数直接求出结果
df.quantile(q=0.75)
key1    3.75
key2    9.75
Name: 0.75, dtype: float64
  • 通过给出的公式求:
import math
q = 0.75
pos = 1 + (len(df) - 1) * q
ret,integer = math.modf(pos)#求出分位的小数部分和整数部分
print('整数部分是%f,小数部分是%f'%(integer,ret))
ans = df['key1'][int(integer)-1] + ret * (df['key1'][int(integer)] - df['key1'][int(integer)-1])
print('key1 ',ans)
ans2 = df['key2'][int(integer)-1] + ret * (df['key2'][int(integer)] - df['key2'][int(integer)-1])
print('key2 ',ans2)
整数部分是4.000000,小数部分是0.750000
key1 3.75
key2 9.75
pandas中,可以使用`quantile()`函数来计算分位数。该函数的参数`q`表示要计算的分位数,取值范围为0到1之间。例如,`df.quantile(q=0.75)`可以计算出DataFrame `df` 的第三四分位数。\[1\] 另外,还可以使用`describe()`函数来获取数据的描述统计信息,包括分位数。通过设置`percentiles`参数,可以指定要计算的分位数。例如,`df.describe(percentiles=\[0.6\])`可以计算出DataFrame `df` 的第六分位数。\[2\] 需要注意的是,计算分位数时,可以使用不同的插值方法来处理分位点之间的数据。常用的插值方法有:`linear`、`lower`、`higher`、`nearest`和`midpoint`。这些方法会影响分位数的计算结果。\[3\] 综上所述,pandas提供了多种方法来计算分位数,可以根据具体需求选择合适的方法。 #### 引用[.reference_title] - *1* [python--pandas 分位数](https://blog.youkuaiyun.com/Blankit1/article/details/93035487)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [pandas中计算分位数的方法describe,quantile,以及sql中计算分位数的方法percentile_approx,percent_rank...](https://blog.youkuaiyun.com/dair6/article/details/121352283)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值