In der pandas cut()
-Dokumentation heißt es: "Out-of-bounds Die Werte sind NA im resultierenden Kategorischen Objekt. " Dies macht es schwierig, wenn die obere Grenze nicht notwendigerweise klar oder wichtig ist. Zum Beispiel:
Erzeugt die Behälter:
%Vor% So wird cut (250, bins=[10,50,100,200])
eine NaN
erzeugen, ebenso wie cut (5, bins=[10,50,100,200])
. Ich versuche etwas wie > 200
für das erste Beispiel und < 10
für das zweite Beispiel zu erzeugen.
Ich weiß, dass ich cut (weight, bins=[float("inf"),10,50,100,200,float("inf")])
oder das Äquivalent machen könnte, aber der Berichtsstil, den ich befolge, lässt Dinge wie (200, inf]
nicht zu. Ich realisiere auch, dass ich tatsächlich benutzerdefinierte Labels über den labels
-Parameter auf cut()
angeben kann, aber das bedeutet, daran zu denken, sie jedes Mal anzupassen, wenn ich bins
anpasse, was oft der Fall sein kann.
Habe ich alle Möglichkeiten ausgeschöpft oder gibt es etwas in cut()
oder anderswo in pandas
, das mir dabei helfen würde? Ich denke darüber nach, eine Wrapper-Funktion für cut()
zu schreiben, die automatisch die Labels im gewünschten Format aus den Bins erzeugen würde, aber ich wollte das hier zuerst überprüfen.
Nachdem ich ein paar Tage gewartet habe, wurden noch immer keine Antworten gepostet - ich denke, das liegt wahrscheinlich daran, dass es wirklich keinen anderen Weg gibt, als die cut()
-Wrapper-Funktion zu schreiben. Ich poste meine Version hier und markiere die Frage als beantwortet. Ich werde das ändern, wenn neue Antworten kommen.
Sie können float("inf")
als obere Grenze und -float("inf")
als untere Grenze in der Binliste verwenden. Es wird NaN-Werte entfernen.