Python - 将 SciPy Beta Distribution 应用于 Pandas DataFrame 的所有行

标签 python pandas scipy beta-distribution

在 SciPy 中,可以按如下方式实现 beta 分布:

x=640495496
alpha=1.5017096
beta=628.110247
A=0
B=148000000000 
p = scipy.stats.beta.cdf(x, alpha, beta, loc=A, scale=B-A)

现在,假设我有一个包含 x、alpha、beta、A、B 列的 Pandas 数据框。如何将 beta 分布应用于每一行,并将结果附加为新列?

最佳答案

鉴于我怀疑 pandas apply 只是循环遍历所有行,并且 scipy.stats 分布在每次调用中都有相当多的开销,我会使用矢量化版本:

>>> from scipy import stats
>>> df['p'] = stats.beta.cdf(df['x'], df['alpha'], df['beta'], loc=df['A'], scale=df['B']-df['A'])
>>> df
   A             B     alpha        beta          x         p
0  0  148000000000  1.501710  628.110247  640495496  0.858060
1  0  148000000000  1.501704  620.110000  640495440  0.853758

关于Python - 将 SciPy Beta Distribution 应用于 Pandas DataFrame 的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44111278/

相关文章:

Python:计算非线性拟合的置信区间

python - 如何强制执行不同的线程

python - 使用 sort_values() 独立地对 pandas DataFrame 的所有列进行排序

python - 我有这段代码,试图通过捕获视频来运行社交隔离标识,但是我遇到此错误。你可以帮帮我吗?

python - Python/SciPy 中低差异(例如 Sobol)准随机序列的建议?

python - 是否有可能捕获 python 中 try block 中引发的所有警告?

python - 喀拉斯 : GridSearchCV for Hyperparameter Tuning

python - Pandas 有条件创建系列/数据框列

python - 按键分组并使用自定义标准聚合

python - fmin 具有多个参数的 python 函数