Pandas mit unendlichen oberen / unteren Grenzen geschnitten

8

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:

%Vor%

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.

    
sparc_spread 08.05.2015, 15:24
quelle

2 Antworten

4

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.

%Vor%     
sparc_spread 12.05.2015, 18:48
quelle
6

Sie können float("inf") als obere Grenze und -float("inf") als untere Grenze in der Binliste verwenden. Es wird NaN-Werte entfernen.

    
Daniel MM. Kamani 18.07.2017 14:19
quelle

Tags und Links