2017-10-28 60 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