2015-07-08 2 views
10

Meine Frage ist einfach, habe ich einen Datenrahmen und ich GROUPBY die Ergebnisse basierend auf einer Säule und die Größe wie diese:Python Pandas Datenrahmen Gruppe basiert auf einer Bedingung

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

Das Problem ist jetzt, dass ich nur wollen diejenigen, bei denen die Größe größer als X ist, ich frage mich, ob ich es mit einer Lambda-Funktion oder etwas ähnliches tun? Ich habe es bereits versucht:

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

Und es gibt einige True und False-Werte aus.

Dank

Antwort

10

Das gruppierte Ergebnis ist eine regelmäßige Datenrahmen, so filtern, dass nur die Ergebnisse wie gewohnt:

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

das grüne Abzeichen verdient. Vielen Dank! –

+0

@AzizAlto :-) Danke –

9

diesen Code Versuchen:

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