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

问题描述:

在我的项目的一部分中,我需要创建一个随机月份名称并将它们存储到数据框列中。 目前我使用下面的代码片断: 首先,创建预定义的大小的一个数据帧:为每个元素创建具有相同实例数的随机样本

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

然后创建120随机时间标记,并将其存储到[“时间戳”]柱:

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

在端提取月和它们stroing成[“STD_Months”]柱:

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

这产生随机个月,但与二不同数量,我的意思是我们可能有120个样本中的1月10日,5月14日,12月8日等(不等数量)

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

一种方法是创建一个非随机列表,然后将它洗:

import random 

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

就用months作为列。

+0

谢谢John,我也在想像这样一个简单的解决方案@John Coleman – Nima