2015-09-24 9 views
30

So che se uso randn,Come creare un frame di dati di numeri interi casuali con Panda?

import pandas as pd 
import numpy as np 
df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD')) 

mi dà quello che sto cercando, ma con elementi da una distribuzione normale. Ma cosa succede se volevo solo numeri casuali?

randint funziona fornendo un intervallo, ma non un array come randn. Quindi, come faccio a farlo con numeri interi casuali tra qualche intervallo?

+0

e relativi per quando stiamo solo l'aggiunta di una colonna: [Panda: creare nuova colonna a df con numeri interi casuali] (http://stackoverflow.com/questions/ 30327417/python-create-new-column-in-pandas-df-con-numeri-casuali-da-intervallo) – smci

risposta

52

numpy.random.randint accetta un terzo argomento (size), in cui è possibile specificare la dimensione della matrice di output. È possibile utilizzare questo per creare la tua DataFrame -

df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD')) 

qui - np.random.randint(0,100,size=(100, 4)) - crea un array di uscita di dimensioni (100,4) con elementi interi casuali tra [0,100).


Demo -

In [22]: df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD')) 

In [23]: df 
Out[23]: 
    A B C D 
0 45 88 44 92 
1 62 34 2 86 
2 85 65 11 31 
3 74 43 42 56 
4 90 38 34 93 
5 0 94 45 10 
6 58 23 23 60 
.. .. .. .. .. 
+0

Potresti per favore fare un esempio di copia-mescolabile che include le importazioni/non ha i numeri di riga? –

Problemi correlati