pandas create a series with n elements (sequential or randbetween)

前端 未结 2 673
一整个雨季
一整个雨季 2021-01-04 12:18

I am trying to create a pandas series.

One column of the series should contain n sequential numbers. [1, 2, 3, ..., n]

One colu

相关标签:
2条回答
  • 2021-01-04 12:46
    import pandas
    n = 30
    k = 40
    pandas.DataFrame([(i, random.randint(k, k+100), chr(random.randint(ord('A'), ord('Z')))) for i in xrange(0, n)
    

    If you want you specify the column names otherwise it is set to 0,1,2

    0 讨论(0)
  • 2021-01-04 13:01

    There can be a lot of solutions. In the comments of the code block (#) you will find a few links for more information:

    import pandas as pd
    import numpy as np
    import random
    import string
    
    k = 5
    N = 10
    
    #http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.randint.html
    #http://stackoverflow.com/a/2257449/2901002
    
    df = pd.DataFrame({ 'A' : range(1, N + 1 ,1),
        'B' : np.random.randint(k, k + 100 , size=N),
        'C' : pd.Series(random.choice(string.ascii_uppercase) for _ in range(N)) })
    
    print df
    #    A   B  C
    #0   1  60  O
    #1   2  94  L
    #2   3  10  W
    #3   4  94  X
    #4   5  60  O
    #5   6  20  K
    #6   7  58  Y
    #7   8  40  I
    #8   9  49  X
    #9  10  65  S
    

    Numpy solution:

    import pandas as pd
    import numpy as np
    
    k = 5
    N = 10
    
    alphabet = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
    
    #http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.choice.html
    
    df = pd.DataFrame({ 'A' : range(1, N + 1 ,1),
        'B' : np.random.randint(k, k + 100 , size=N),
        'C' : np.random.choice(np.array(alphabet, dtype="|S1"), N) })
    
    print df
    #    A    B  C
    #0   1   16  U
    #1   2   76  X
    #2   3  101  N
    #3   4   61  F
    #4   5   52  J
    #5   6   62  A
    #6   7   99  L
    #7   8   23  N
    #8   9   75  D
    #9  10   16  Q
    
    0 讨论(0)
提交回复
热议问题