Die pandas cut()
documentation besagt, dass "Out-of-Bounds-Werte werden NA in der resultierenden kategorischen Objekt." Dies macht es schwierig, wenn die obere Grenze nicht notwendigerweise klar oder wichtig ist. Zum Beispiel:Pandas mit unendlichen Ober-/Untergrenzen geschnitten
cut (weight, bins=[10,50,100,200])
Werden die Behälter produzieren:
[(10, 50] < (50, 100] < (100, 200]]
So cut (250, bins=[10,50,100,200])
eine NaN
produzieren wird, ebenso wie cut (5, bins=[10,50,100,200])
. Was ich versuche, ist etwas wie > 200
für das erste Beispiel und < 10
für das zweite Beispiel zu produzieren.
Ich weiß, ich könnte cut (weight, bins=[float("inf"),10,50,100,200,float("inf")])
oder das Äquivalent tun, aber der Berichtsstil, den ich befolge, lässt Dinge wie (200, inf]
nicht zu. Ich realisiere auch, ich könnte tatsächlich benutzerdefinierte Etiketten über die labels
Parameter auf cut()
angeben, aber das bedeutet, daran zu erinnern, sie jedes Mal anpassen, wenn ich bins
anpassen, was oft sein könnte.
Habe ich alle Möglichkeiten erschöpft, oder gibt es etwas in cut()
oder woanders in pandas
das würde mir helfen, dies zu tun? Ich denke über das Schreiben einer Wrapper-Funktion für cut()
, die automatisch die Etiketten im gewünschten Format aus den Bins generieren würde, aber ich wollte hier zuerst überprüfen.
Fragen Sie nach, wie man die Fachgrenzen einstellt, oder wie man eins als "200+" kennzeichnet? Du könntest einfach die obere Grenze auf 'the_data.max() + 1' oder so einstellen, aber ich denke, du musst die Beschriftung manuell setzen, wenn du das bestimmte Format willst. – BrenBarn
Ja, ich fange an zu denken, dass es der einzige Weg ist. –