2013-06-04 21 views
9

Ist es möglich, eine Gruppe (nach Gruppenname) aus einem groupby Objekt in Pandas zu löschen? Das heißt, nachdem Sie eine Groupby ausgeführt haben, löschen Sie eine resultierende Gruppe basierend auf ihrem Namen.Löschen einer Gruppe nach Pandas groupby

Antwort

11

Filtern einer Datenrahmen groupwise hat discussed gewesen. Und eine zukünftige Veröffentlichung von Pandas kann a more convenient way to do it einschließen.

Aber derzeit, hier ist, was ich glaube, die am meisten prägnante Art und Weise das GroupBy Objekt grouped nach Namen zu filtern und einen DataFrame der verbleibenden Gruppen zurückgeben.

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

Und hier ist ein allgemeineres Verfahren aus den Verbindungen abgeleitet oben:

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

Ehrfürchtig. Vielen Dank. Das war ein bisschen offensichtlicher als ich gehofft hatte - nicht zu schmerzhaft. – geomando

+0

Benötigt das nicht, dass wir die Gruppen "neu erstellen", weil wir nur die df verändern? Gab es Entwicklungen, die uns dies leichter machen? – user2051561

0

Scheint, es gibt keine direkte Möglichkeit, eine Gruppe aus einem groupby Objekt zu löschen. Ich denke, dass Sie diese groupby vor groupby ausfiltern kann durch

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

Vielleicht falsch verstehe ich, was durch die Variable gemeint ist '' group'', aber man kann nicht Index einen Datenrahmen von ein GroupBy-Objekt. –

+0

Ich denke es sollte 'df = df [df [group_name]! = Group_label] sein. Aber das Poster hat group_name ad group_label – waitingkuo

+0

Wie machst du group_name? –