0%

pandas series的quantile的反函数是什么?

❓ quantile为我们提供pandas Series s的分位数,例如:

1
s.quantile(0.9) is 4.2

是否有反函数(即累积分布)找到x的值

1
s.quantile(x)=4

✔️ 我和你有同样的问题! 我找到了一种使用scipy求分位数的逆的简单方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#libs required
from scipy import stats
import pandas as pd
import numpy as np

#generate ramdom data with same seed (to be reproducible)
np.random.seed(seed=1)
df = pd.DataFrame(np.random.uniform(0,1,(10)), columns=['a'])

#quantile function
x = df.quantile(0.5)[0]

#inverse of quantile
stats.percentileofscore(df['a'],x)