我想在我的数据框 df 中生成一个新列,它只能采用两个值,即 0 或 1。我的数据框目前有 1000 行以及其他列。我想以这样的方式生成 0 和 1,即列中 60% 的值是 0,其余 40% 是 1。
我做了以下事情:
generated_data = []
for index, row in df.iterrows():
if index <= len(df) * 0.6 :
generated_data.append(0)
else :
generated_data.append(1)
问题是:这怎么能随机实现。在我的代码中,前 60% 的行是 0,其余的是 1。我想在创建中实现随机性。
谢谢
请您参考如下方法:
如果您想要 0 的 60% 和 1 的 40%,您可以首先使用 np.ones 和 np.zeros 创建列,然后 随机播放它:
import numpy as np
generated_data = np.concatenate([np.zeros(600), np.ones(400)])
np.random.shuffle(generated_data)
print(generated_data)
