2015-09-24 41 views
30

wiem, że jeśli używam randn,Jak utworzyć ramkę danych z losowymi liczbami całkowitymi z Pandami?

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

daje mi to czego szukam, ale z elementami z rozkładu normalnego. Ale co jeśli chciałbym tylko losowych liczb całkowitych?

randint działa przez zapewnienie zakresu, ale nie ma takiej tablicy, jak randn. Więc jak to zrobić z losowymi liczbami całkowitymi w pewnym zakresie?

+0

i pokrewnych, gdy jesteśmy po prostu dodając kolumnę: [Pandy: utworzyć nową kolumnę w DF z losowych liczb całkowitych] (http://stackoverflow.com/questions/ 30327417/python-utwórz-nową-kolumnę-w-pandas-df-z-losowymi liczbami-z-zakresu) – smci

Odpowiedz

52

numpy.random.randint przyjmuje trzeci argument (size), w którym można określić rozmiar tablicy wyjściowej. Można to wykorzystać, aby stworzyć swój DataFrame -

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

tutaj - np.random.randint(0,100,size=(100, 4)) - tworzy tablicę wyjściową wielkość (100,4) z przypadkowych elementów całkowitą pomiędzy [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

Czy mógłbyś prosić o próbkę, która może być kopiowana, co obejmuje import/nie ma numerów linii? –