2016-06-22 2 views
0

Gibt es eine Möglichkeit in Pandas, aus einem gruppierten Datenfeld die Gruppen mit mehr als x Mitgliedern auszuwählen?Gruppen mit mehr als x Mitgliedern auswählen

so etwas wie:

grouped = df.groupby(['a', 'b']) 
dupes = [g[['a', 'b', 'c', 'd']] for _, g in grouped if len(g) > 1] 

ich keine Lösung in der Dokumentation oder auf SO finden.

Antwort

1

Verwendung filter:

grouped.filter(lambda x: len(x) > 1) 

Beispiel:

In [64]: 
df = pd.DataFrame({'a':[0,0,1,2],'b':np.arange(4)}) 
df 

Out[64]: 
    a b 
0 0 0 
1 0 1 
2 1 2 
3 2 3 

In [65]: 
df.groupby('a').filter(lambda x: len(x)>1) 

Out[65]: 
    a b 
0 0 0 
1 0 1 
+0

Oh, das einfach, ich habe versucht, aber meine Lambda-Funktion die group_name und die Gruppe nahm, wie sie nachgegeben werden, wenn auf der Iterieren gruppiert df. Vielen Dank –