Ich habe einen DataFrame-df, den ich gruppiert habe. Ich bin auf der Suche nach einer Funktion, die get_group (name) ähnlich ist, außer dass ein KeyError, wenn der Name nicht existiert, einen leeren DataFrame (oder einen anderen Wert) zurückgibt, ähnlich wie dict.get funktioniert:
%Vor%Gibt es schon eine Funktion, die das bietet?
Bearbeiten:
In vielerlei Hinsicht wird das GroupBy-Objekt durch ein dict (.indicies, .groups) repräsentiert, und diese "get with default" -Funktionalität war Kern genug für das Konzept eines dict, dass es in der Python-Sprache selbst enthalten ist. Es schien, dass, wenn ein dict-like Ding nicht mit Standard bekommen, vielleicht verstehe ich es nicht richtig? Warum sollte eine Diktat-ähnliche Sache nicht mit der Standardfunktion fertig werden?
Ein abgekürztes Beispiel für das, was ich tun möchte, ist:
%Vor%Natürlich könnte ich eine Funktion erstellen, und ich könnte, es schien nur, dass, wenn ich so weit aus dem Weg gehen muss, ich vielleicht nicht das GroupBy-Objekt so verwenden möchte, wie es beabsichtigt war:
%Vor%Es ist nicht so schön, aber Sie könnten so etwas tun:
Setup:
%Vor% Jetzt erfordert g.get_group
, dass der übergebene Schlüssel in dem zugrunde liegenden groups
dict existiert, aber Sie können auf dieses Mitglied selbst zugreifen, und tatsächlich ist es ein normales Python dict
. Es übernimmt den Gruppenwert für die Sammlung von Indizes:
Wenn Sie diese zurückgegebenen Indizes in der Indexpositionsfunktion des Datenrahmens verwenden, können Sie Ihre Gruppen auf die gleiche Weise abrufen: get_group
würde:
Da groups
ein dict
ist, können Sie die Methode get
verwenden. Wenn Sie keinen Standardwert angeben, wird None
zurückgegeben, was dazu führt, dass loc
eine Ausnahme auslöst. Aber es akzeptiert eine leere Liste:
Es ist nicht so sauber wie das Bereitstellen eines Standardwerts für get_group
(vielleicht sollten sie dieses Feature in einer zukünftigen Version hinzufügen), aber es funktioniert.