熊猫系列中分位数函数的反函数是什么?

新手上路,请多包涵

分位数函数为我们提供了给定熊猫系列 s 的分位数,

例如

s.quantile(0.9) 是 4.2

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

s.quantile(x)=4

谢谢

原文由 Mannaggia 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

我和你有同样的问题!我找到了一种使用 scipy 获取分位数倒数的简单方法。

 #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)

原文由 fernandosjp 发布,翻译遵循 CC BY-SA 3.0 许可协议

排序可能很昂贵,如果您寻找单个值,我猜您最好使用以下方法计算它:

 s = pd.Series(np.random.uniform(size=1000))
( s < 0.7 ).astype(int).mean() # =0.7ish

可能有一种方法可以避免 int(bool) 恶作剧。

原文由 ILoveCoding 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题