Python 在熊猫中创造分布
我想生成具有特定分布的随机/模拟数据集 例如,该分布具有以下属性Python 在熊猫中创造分布,python,pandas,dataframe,distribution,Python,Pandas,Dataframe,Distribution,我想生成具有特定分布的随机/模拟数据集 例如,该分布具有以下属性 一千人口 性别组合为:男性49%,女性50%,其他1% 年龄分布如下:0-30岁(30%)、31-60岁(40%)、61-100岁(30%) 结果数据框将有1000行,两列称为性别和年龄(具有上述值分布) 在Pandas或其他图书馆中是否有这样做的方法?您可以尝试: N = 1000 gender = np.random.choice(["male","female", "othe
N = 1000
gender = np.random.choice(["male","female", "other"], size=N, p = [.49,.5,.01])
age = np.r_[np.random.choice(range(30),size= int(.3*N)),
np.random.choice(range(31,60),size= int(.4*N)),
np.random.choice(range(61,100),size= N - int(.3*N) - int(.4*N) )]
np.random.shuffle(age)
df = pd.DataFrame({"gender":gender,"age":age})
你可以尝试:
N = 1000
gender = np.random.choice(["male","female", "other"], size=N, p = [.49,.5,.01])
age = np.r_[np.random.choice(range(30),size= int(.3*N)),
np.random.choice(range(31,60),size= int(.4*N)),
np.random.choice(range(61,100),size= N - int(.3*N) - int(.4*N) )]
np.random.shuffle(age)
df = pd.DataFrame({"gender":gender,"age":age})
numpy.random.choice
?或者你想用这些概率创建一个样本?对于年龄,61+意味着什么(上限是多少?100?120?)。年龄是否均匀分布在年龄范围内?或者年龄只是一个类别指标,而不是实际数字?我编辑了年龄的上界numpy.random.choice
你想要准确的百分比混合吗?或者你想用这些概率创建一个样本?对于年龄,61+意味着什么(上限是多少?100?120?)。年龄是否均匀分布在年龄范围内?或者年龄只是类别的一个指标而不是实际数字?我编辑了ageuserandint(31,61,size=…)
的上界。我从OP上读到,年龄将以括号表示,并且可以以与性别相同的方式生成。@PaulH 61+意味着一个具有长长度的分布,但我要说的是,数组应该从三个类别中选择,而不是从连续分布中选择。这个问题模棱两可。我只是在分享我的想法intrepretation@PaulH完全同意你的看法使用randint(31,61,size=…)
可能更快。我从OP中了解到,年龄将以括号表示,并且可以以与性别相同的方式生成。@PaulH 61+意味着一个长尾巴的分布,但我要说的是,数组应该从三个类别中选择,而不是从连续分布中选择。这个问题模棱两可。我只是在分享我的想法intrepretation@PaulH完全同意你的意见