2017-10-28 61 views
-1

我想用pandas創建一個數據框,其中1列是'EmployeeID',第二個是'技能'集,他具有1到5的範圍。'EmployeeID'列應該有唯一值,而「技能」列可以具有重複值。 1.我試圖產生「僱員」使用下面的代碼:使用熊貓和隨機模塊創建數據幀

df = pd.DataFrame({'EmployeeID':[random.sample(range(123456,135000),100)]}) 

但結果不是我所期待。它產生的所有號碼,並把它們放在一排

enter image description here

  • Random.sample是給我唯一的值。我怎樣才能在給定的範圍內生成100個重複值?使用randint嘗試,但它沒有經過數字的計數的選項生成
  • +0

    什麼是你希望使用 – Dark

    +1

    'np.random.ran dint':'pd.DataFrame({'EmployeeID':np.random.randint(123456,135000,100)})' –

    +0

    不要使用列表,因爲隨機數已經可迭代了 – Dark

    回答

    1

    使用numpy.random.randint + numpy.tile如果需要重複1-5範圍:

    df = pd.DataFrame({'EmployeeID': np.random.randint(123456, 135000, 100), 
            'skill':np.tile(np.arange(1,6), 20)}) 
    print (df.head(10)) 
        EmployeeID skill 
    0  129323  1 
    1  126570  2 
    2  124034  3 
    3  129659  4 
    4  125654  5 
    5  127093  1 
    6  123780  2 
    7  125665  3 
    8  124063  4 
    9  125061  5 
    

    此外,如果需要在範圍1-5隨機值列skill使用雙randint

    df = pd.DataFrame({'EmployeeID': np.random.randint(123456, 135000, 100), 
            'skill':np.random.randint(1,6, 100)}) 
    print (df.head(10)) 
        EmployeeID skill 
    0  131496  2 
    1  133133  4 
    2  130999  2 
    3  127685  5 
    4  129008  1 
    5  124238  3 
    6  124147  3 
    7  123592  3 
    8  133859  1 
    9  126097  3