2013-06-04 20 views

risposta

11

Filtrare una GroupWise dataframe è stato discussed. E una futura versione di panda potrebbe includere a more convenient way to do it.

Ma al momento, ecco quello che credo sia il modo più succinto di filtrare l'oggetto GroupBy grouped per nome e restituire un DataFrame dei restanti gruppi.

df.drop(grouped.get_group(group_name).index) 

E qui è un metodo più generale derivato dal link qui sopra:

df[grouped[0].transform(lambda x: x.name != group_name).astype('bool')] 
+0

Fantastico. Grazie. Era un po 'più ovvio di quanto speravo, non troppo doloroso. – geomando

+0

Questo non richiede che noi "ricreare" i gruppi perché stiamo solo modificando il df? Sono stati loro sviluppi che ci permettono di farlo più facilmente? – user2051561

0

Sembra che non ci sia un modo diretto per eliminare un gruppo da un oggetto groupby. Penso che si possa filtrare quelle groupby prima groupby da

df = df[df[group] != group_name] 
+0

Forse mi fraintendono che cosa si intende con la variabile '' group'', ma non è possibile indicizzare un dataframe da un oggetto GroupBy. –

+0

Penso che dovrebbe essere 'df = df [df [nome_gruppo]! = Gruppo_label]. Ma il poster ha usato group_name annuncio group_label – waitingkuo

+0

Come si crea nome_gruppo? –

Problemi correlati