为每个元素创建具有相同实例数的随机样本

时间:2017-08-26 11:34:14

标签: python-3.x random

在我的项目的一部分中,我需要创建一个随机的月份名称并将它们存储到数据框列中。 目前我正在使用以下代码段: 首先,创建预定义大小的数据框:

df = pd.DataFrame(index=range(size))

然后创建120个随机时间戳并将它们存储到['Timestamp']列中:

df["Timestamp"] = [ pd.Timestamp(2017, np.random.randint(1,13), 1) for _ in range(120) ] 

最后提取月份并将它们划入['STD_Months']列:

df["STD_Months"] = df["Timestamp"].apply(lambda x: x.strftime('%B'))

这创造了随机月份,但数量不同,我的意思是我们可能在120个样本中有1月10日,5月14日,12月8日等(数量不等)

如何修改我的代码以获得相同数量的随机样本(每月10个实例名称:1月10日,2月10日,......,12月10日)

1 个答案:

答案 0 :(得分:1)

一种方法是创建一个非随机列表,然后将其随机播放:

import random

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
months *= 10
random.shuffle(months)

然后只使用months作为列。