如何随机地将"是/否"(比例为7:3)附加到pandas数据帧中的列?

CSM*_*ick 3 python dataframe pandas

我有一个数据框,由三列组成.我想使用python-pandas将"Yes"或"No"附加到其中一个列.Yes:No之间的比例是7:3.

有没有人试过这个?

ayh*_*han 6

随着numpy的random.choice:

df["new_column"] = np.random.choice(["Yes", "No"], len(df), p=[0.7, 0.3])
Run Code Online (Sandbox Code Playgroud)

注意:np.random.choice包含独立的试验(除非你通过replace = False).在每次试验中,获得"是"的概率为0.7.最后,你可能不会完全达到70%的比例.但是,对于2480500行,此二项分布将近似于具有均值2480500 * 0.7和标准差的正态分布sqrt(2480500 * 0.7 * 0.3).随着+/-3 standard deviation(概率为99.73%),你最终会得到一个比率(0.69913, 0.70087).但如果你想要70%,你可以使用pandas的样本作为@EdChum建议,我猜它有一个修正因子.


piR*_*red 1

又快又脏

pd.Series(np.random.rand(100)).apply(lambda x: 'Yes' if x < .7 else 'No')
Run Code Online (Sandbox Code Playgroud)