Gegeben ein Datenrahmen, der so aussieht
%Vor%Ich möchte den Unterschied zwischen dem größten und dem kleinsten Wert in jeder Gruppe berechnen. Das heißt, das Ergebnis sollte
sein %Vor%Was ist ein einfacher Weg, dies in Pandas zu tun?
Was ist ein schneller Weg, dies in Pandas für einen Datenrahmen mit etwa 2 Millionen Zeilen und 1 Million Gruppen zu tun?
Verwenden von @unutbus df
pro Zeitpunkt
Die Lösung von unutbu eignet sich am besten für große Datenmengen
np.ptp
docs gibt den Bereich von Array
Timing
klein df
groß df
df = pd.DataFrame(dict(GROUP=np.arange(1000000) % 100, VALUE=np.random.rand(1000000)))
groß df
viele Gruppen
df = pd.DataFrame(dict(GROUP=np.arange(1000000) % 10000, VALUE=np.random.rand(1000000)))
Tags und Links python numpy pandas data-science