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

I am trying to create a series of pandas .

One column in a series must contain n consecutive numbers. [1, 2, 3, ..., n]

One column must contain random numbers between k and k+100 .

One column should contain a random selection between the rows in the list. ['A', 'B', 'C', ... 'Z']

+7
python pandas dataframe random-sample series
source share
2 answers

There may be many solutions. In the comments of the code block ( # ) you will find several 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 # ABC #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 # ABC #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 
+7
source share
 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 to specify column names, otherwise it will be set to 0,1,2

+3
source share

All Articles