# Pandas: create new column in df with random integers from range

I have a pandas data frame with 50k rows. I'm trying to add a new column that is a randomly generated integer from 1 to 5.

If I want 50k random numbers I'd use:

```
df1['randNumCol'] = random.sample(xrange(50000), len(df1))
```

but for this I'm not sure how to do it.

Side note in R, I'd do:

```
sample(1:5, 50000, replace = TRUE)
```

Any suggestions?

One solution is to use `numpy.random.randint`

:

```
import numpy as np
df1['randNumCol'] = np.random.randint(1, 6, df1.shape[0])
```

Or if the numbers are non-consecutive (albeit slower), you can use this:

```
df1['randNumCol'] = np.random.choice([1, 9, 20], df1.shape[0])
```

In order to make the results reproducible you can set the seed with `numpy.random.seed`

.

From: stackoverflow.com/q/30327417