scipy 应用poisson.cdf在panda Dataframe 中创建一列,

muk1a3rh  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(136)

我有一个Pandas数据框,有两列,比如x和y,对于每一行,x是服从泊松分布的随机变量的均值,我想添加第三列z,使得z =随机抽取的概率小于y。
对于给定的行,假设x = 15,我想知道随机抽取小于y = 10的概率。我知道我可以用途:

from scipy.stats import poisson
x = 15
y = 10
z = poisson.cdf(y, x)
z

返回0.118
如何对Pandas Dataframe 中的每一行执行此操作,创建第三列?

8nuwlpux

8nuwlpux1#

您可以使用apply方法:

df = pd.DataFrame({"x": [15, 15, 15], "y": [10, 15, 20]})

df["z"] = df.apply(lambda r: poisson.cdf(r.y, r.x), axis=1)
print(df)

结果:

x   y         z
0  15  10  0.118464
1  15  15  0.568090
2  15  20  0.917029

相关问题