如何在 pandas 数据框中创建倾斜列?

How to create a skewed column in pandas dataframe?

我想在具有偏态分布的数据框中创建一个新列。我希望它有 64000 个数据点,最小值为 0(无负值),以及某种倾斜的形状,其中大多数人更接近 0,然后它以更高的值向右平稳。

我已经试过了,但是我做不到。非常感谢任何帮助。

rv = skewnorm.rvs(400000, size=100000)

您可以使用 exponential or poisson 分布,具体取决于您的具体需求。 指数分布将给出连续值,而泊松将给出离散值。两者都可以在 numpy 包中找到。创建 numpy 数组后,可以轻松将其添加到 pandas 数据框。

指数分布 (numpy):

import numpy as np

beta = 10
s = np.random.exponential(beta, 64000)

beta 用作比例参数,将确定值的大小,同时保持一般分布形状。绘制 beta=10 和 100 个箱子:

泊松分布 (numpy):

import numpy as np

lam = 0.9
s = np.random.poisson(lam , 64000)

速率参数 lam 将决定分布的形状。均值和方差都将等于 lam。请注意,仅获得离散值。使用 lam=0.9 和 8 个 bin 绘图: