Qual è il modo migliore per ottenere un campione casuale degli elementi di un groupby
? A quanto ho capito, un groupby
è solo un iterabile su gruppi.Panda di Python che scelgono un campione casuale di gruppi da Groupby
Il metodo standard che avrei fatto questo per un iterabile se volevo selezionare N = 200
elementi è:
rand= random.sample(data, N)
Se si tenta di cui sopra in cui i dati è un 'raggruppato' gli elementi della lista risultante sono tuple per qualche ragione.
Ho trovato l'esempio seguente per la selezione casuale degli elementi di una chiave singola groupby
, tuttavia questo non funziona con un tasto multiplo groupby
. Da, How to access pandas groupby dataframe by key
creare groupby oggetto
grouped = df.groupby('some_key')
prelievo N dataframes e afferrare loro indicies
sampled_df_i = random.sample(grouped.indicies,N)
afferrare i gruppi
df_list = map(lambda df_i: grouped.get_group(df_i),sampled_df_i)
opzionalmente - girare tutto indietro in un singolo frame di dati obj ect
sampled_df = pd.concat(df_list, axis=0, join='outer')
molto approfondita. Grazie per aver incluso gli esempi multi-indice. – sfortney