问题描述
作为示例,分布具有以下属性。
- 1000人口
- 性别比例为:男性49%,女性50%,其他1%
- 年龄分布如下:0-30(30%),31-60(40%),61-100(30%)
结果数据框将有1000行,两列称为性别和年龄(具有上述值分布)
在Pandas或其他图书馆中有没有办法做到这一点?
解决方法
您可以尝试:
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})