为每个元素创建具有相同实例数的随机样本
问题描述:
在我的项目的一部分中,我需要创建一个随机月份名称并将它们存储到数据框列中。 目前我使用下面的代码片断: 首先,创建预定义的大小的一个数据帧:为每个元素创建具有相同实例数的随机样本
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
作为列。
谢谢John,我也在想像这样一个简单的解决方案@John Coleman – Nima