2017-08-26 71 views
0

在我的項目的一部分中,我需要創建一個隨機月份名稱並將它們存儲到數據框列中。 目前我使用下面的代碼片斷: 首先,創建預定義的大小的一個數據幀:爲每個元素創建具有相同實例數的隨機樣本

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日)

回答

1

一種方法是創建一個非隨機列表,然後將它洗:

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

相關問題