如何将列表数据均匀随机分配至Pandas DataFrame的列中?
实现均匀随机填充DataFrame列的方法
可以通过构造重复列表+随机打乱的方式实现,步骤如下:
构造每个用户重复指定次数的列表
因为你的DataFrame有100行,4个用户,每个需要出现25次,直接将用户列表重复25次即可得到总长度为100的列表:users = ['a','b','c','d'] # 每个用户重复25次,总长度4*25=100 user_pool = users * 25随机打乱列表顺序
使用numpy或pandas的随机打乱方法,让列表顺序完全随机,每次运行结果不同:import numpy as np # 原地打乱列表 np.random.shuffle(user_pool)或者用pandas的采样方式实现打乱:
import pandas as pd user_pool = pd.Series(user_pool).sample(frac=1, random_state=None).tolist()赋值给DataFrame的目标列
最后将打乱后的列表直接赋值给X的users列:X['users'] = user_pool
这样处理后,每个用户恰好出现25次,且每次运行的分配顺序都是随机的,完全符合你的需求。
内容的提问来源于stack exchange,提问作者anotherCoder
相关产品推荐
相关产品推荐

