将 1 的随机插入到一列熊猫数据帧 python 中



我有一个182行的数据帧。我想在其中添加一列,除了df中分布的12个1之外,其余都是0。有可能吗?感谢

df['x']=0
df.loc[df.sample(12).index.tolist(), 'x'] =  1

您可以将random.shuffle用于此

# create members
contents = [1 for _ in range(12)] + [0 for _ in range(182 - 12)]
# shuffle contents in-place
random.shuffle(contents)
# add to df
df["colname"] = contents

您可以将random.choice与列表理解一起使用:

import random
df['NEW_COL'] = [0]*182
df['NEW_COL'][[random.choice(range(182)) for x in range(12)]] = 1

最新更新