import pandas as pd
import numpy as np
# sample data
np.random.seed(2023) # for reproducibility
data = {'Category': np.random.choice(['hot', 'cold'], size=(10,)),
'field_A': np.random.randint(0, 100, size=(10,)),
'field_B': np.random.randint(0, 100, size=(10,))}
df = pd.DataFrame(data)
df.field_A.mean() # Same as df['field_A'].mean()
# 51.1
df.field_A.median()
# 50.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
# 15.6
df.field_A.quantile(0.5) # same as median
# 50.0
df.field_A.quantile(0.9) # 90th percentile
# 88.8
df.groupby('Category').field_A.quantile(0.1)
#Category
#cold 28.8
#hot 8.6
#Name: field_A, dtype: float64
df
Category field_A field_B
0 cold 96 58
1 cold 22 28
2 hot 17 81
3 cold 53 71
4 cold 47 63
5 hot 77 48
6 cold 39 32
7 hot 69 29
8 hot 88 49
9 hot 3 49
6条答案
按热度按时间y3bcpkx11#
pandas.DataFrame.quantile()
函数。quantile()
的API,你会看到它需要一个参数来进行插值。如果你想要一个位于数据中两个位置之间的分位数:df
q7solyqu2#
假设系列
s
获取
[.1, .2, .3, .4, .5, .6, .7, .8, .9]
的分位数或
8mmmxcuj3#
我发现下面会工作:
57hvy0tb4#
您甚至可以给予多个具有空值的列,并获得多个分位数值(我使用95%进行离群值处理)
ovfsdjhp5#
一种非常简单有效的方法是调用特定列上的describe函数
这将给予平均值、最大值、中位数和第75百分位数
erhoui1w6#
Describe会给予你四分位数,如果你想要百分位数,你可以这样做