Ich habe eine Codezeile:
%Vor%Die Farben sind Rot, Blau, Grün, Gelb, Lila, Orange und Schwarz. Wie gebe ich diese Liste zurück? Für ähnliche Attribute verwende ich x.Attribute und es funktioniert gut, aber x.Color verhält sich nicht auf die gleiche Weise.
Ich wollte dies als Kommentar zu Yanqi Mas Antwort hinzufügen, aber ich habe noch nicht den Ruf, es zu kommentieren.
Wenn Sie die Reihenfolge der Gruppen nicht interessiert, funktioniert diese Antwort gut:
%Vor% Beachten Sie jedoch, dass g.groups
ein Wörterbuch ist, also die Schlüssel sind inhärent ungeordnet! Dies ist auch dann der Fall, wenn Sie sort=True
für die Methode groupby
verwenden, um die Gruppen zu sortieren. was standardmäßig gilt.
Das hat mich wirklich hart gekostet, als es zu einer anderen Reihenfolge auf zwei Plattformen kam, besonders seit ich das zweite Formular oben benutzt habe, also war es zunächst nicht offensichtlich, dass g.groups
ein dict
war.
Meiner Meinung nach ist der beste Weg, dies zu tun, die Tatsache zu nutzen, dass die GroupBy-Objekt hat einen Iterator und verwendet ein Listenverständnis, um die Gruppen in der Reihenfolge zurückzugeben, in der sie im GroupBy-Objekt vorhanden sind:
%Vor%Es ist ein wenig weniger lesbar, aber dies wird immer die Gruppen in der richtigen Reihenfolge zurückgeben.
Ich verstehe, dass Sie einen Datenrahmen haben, der mehrere Spalten enthält. Eine der Spalten ist "Farbe", die verschiedene Arten von Farben hat. Sie möchten eine Liste der vorhandenen eindeutigen Farben zurückgeben.
%Vor%Der obige Code gibt Ihnen alle Farben, die existieren, ohne die Farbnamen zu wiederholen. Daher sollten Sie eine Ausgabe wie folgt erhalten:
%Vor%Eine Alternative ist die Funktion uniquent () , die ein Array aller eindeutigen Werte in einer Serie. Um also ein Array aller eindeutigen Farben zu erhalten, würden Sie Folgendes tun:
%Vor% Die Ausgabe ist ein Array, also würde beispielsweise print df['Color'].unique()[3]
Ihnen Yellow
geben.
So geht's.
%Vor%Der Kerngedanke hierbei ist: Wenn Sie eine Iteratorgruppe über eine Dataframe-Gruppe durchlaufen, erhalten Sie ein Zwei-Tupel von (Gruppenname, gefilterter Datenrahmen), wobei der gefilterte Datenrahmen nur Datensätze enthält, die dieser Gruppe entsprechen. .