2015-07-08 28 views
10

mia domanda è semplice, ho un dataframe e GroupBy i risultati sulla base di una colonna e ottenere la dimensione in questo modo:Python PANDAS gruppo dataframe da base a una condizione

df.groupby('column').size() 

Ora il problema è che io voglio solo quelli in cui la dimensione è maggiore di X. Mi chiedo se posso farlo usando una funzione lambda o qualcosa di simile? Ho già provato questo:

df.groupby('column').size() > X 

E stampa alcuni valori True e False.

Grazie

risposta

10

Il risultato raggruppato è un dataframe regolare, quindi basta filtrare i risultati come al solito:

import pandas as pd 

df = pd.DataFrame({'a': ['a', 'b', 'a', 'a', 'b', 'c', 'd']}) 
after = df.groupby('a').size() 
>> after 
a 
a 3 
b 2 
c 1 
d 1 
dtype: int64 

>> after[after > 2] 
a 
a 3 
dtype: int64 
+0

merita il badge verde. Grazie! –

+0

@AzizAlto :-) Grazie –

9

provare questo codice:

df.groupby('column').filter(lambda group: group.size > X)