2015-04-24 14 views
17

Sto lavorando in Python con un DataFrame panda di videogiochi, ognuno con un genere. Sto cercando di rimuovere qualsiasi videogioco con un genere che appare meno di un certo numero di volte nel DataFrame, ma non ho idea di come procedere. Ho trovato a StackOverflow question che sembra essere correlato, ma non riesco a decifrare la soluzione (forse perché non ho mai sentito parlare di R e la mia memoria di programmazione funzionale è al meglio arrugginita).Come faccio a filtrare un DataFrame panda basato sul conteggio dei valori?

Aiuto?

risposta

29

Uso groupby filter:

In [11]: df = pd.DataFrame([[1, 2], [1, 4], [5, 6]], columns=['A', 'B']) 

In [12]: df 
Out[12]: 
    A B 
0 1 2 
1 1 4 
2 5 6 

In [13]: df.groupby("A").filter(lambda x: len(x) > 1) 
Out[13]: 
    A B 
0 1 2 
1 1 4 

vi consiglio di leggere il split-combine-section of the docs.

+0

In realtà ho provato questo in anticipo ma non riuscivo a farlo funzionare. Risulta il problema era con la mia funzione. Fisso! – uchuujin

+1

E possiamo anche raggruppare per livello MultiIndex: groupby (livello = ...). Esattamente quello di cui avevo bisogno – Winand

Problemi correlati