我想在具有偏态分布的数据框中创建一个新列。我希望它有 64000 个数据点,最小值为 0(无负值),以及某种倾斜的形状,其中大多数人更接近 0,然后它以更高的值向右趋于平稳。
我已经试过了,但是我做不到。非常感谢任何帮助。
rv = skewnorm.rvs(400000, size=100000)
最佳答案
您可以使用 exponential或 poisson分布取决于你到底在做什么。 指数分布将给出连续值,而泊松分布将给出离散值。两者都可以在 numpy
包中找到。创建 numpy
数组后,可以轻松将其添加到 pandas
数据框。
指数分布(numpy):
import numpy as np
beta = 10
s = np.random.exponential(beta, 64000)
beta
用作比例参数,将确定值的大小,同时保持一般分布形状。使用 beta=10
和 100 个 bin 绘制:
泊松分布 ( numpy ):
import numpy as np
lam = 0.9
s = np.random.poisson(lam , 64000)
速率参数 lam
将决定分布的形状。均值和方差都将等于 lam
。请注意,仅获得离散值。使用 lam=0.9
和 8 个 bin 绘制:
关于python - 如何在 Pandas 数据框中创建倾斜列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61472179/