2017-03-28 4 views
2

Ich habe einen Datensatz mit 36k Zeilen. Ich möchte 9k Zeilen mit Pandas nach dem Zufallsprinzip auswählen. Wie beende ich diese Aufgabe?Wie wählt man zufällig Reihen aus einem Datensatz mit Pandas?

+0

Ich bin Überlauf zu stapeln. Ich werde das machen. Ich habe auf den Pfeil nach oben geklickt. ich hoffe du hast den upvote bekommen :-) –

+0

Danke .. du hast es richtig gemacht ;-) – piRSquared

+0

Wirklich ein Betrogener davon: http: //stackoverflow.com/questions/15923826/random-row-selection-in-pandas-dataframe Siehe letzte Antwort – EdChum

Antwort

4

ich glaube, Sie sample verwenden können - 9k oder 25% Reihen:

df.sample(n=9000) 

Oder:

df.sample(frac=0.25) 

Eine andere Lösung mit der Erstellung Stichprobe von index von numpy.random.choice und wählen Sie dann durch loc-index hat einzigartig sein:

df = df.loc[np.random.choice(df.index, size=9000)] 

Lösung, wenn nicht eindeutiger Index:

df = df.iloc[np.random.choice(np.arange(len(df)), size=9000)] 
2

numpy

i = np.random.permutation(np.arange(len(df))) 
idx = i[:9000] 
pd.DataFrame(df.values[idx], df.index[idx]) 
Verwandte Themen