Ich habe Daten in den Terabyte. Daher funktionieren die Standards pandas
und numpy
Prozeduren (group-by
, mean
, histogram
usw.) nicht, wenn ich nicht alle Daten gleichzeitig laden kann.Big-Data-Methoden: Iterative (Chunk-weise) Berechnung von Daten Momenten
Meine Daten stammen von pandas.HDFStore.select
, die einen Iterator mit Chunks variabler Chunk-Größe zurückgeben können.
Alles, was ich brauche, sind Methoden zur Berechnung von Momenten der Daten auf der Grundlage iterativer Ansätze.
Der erwartete Wert ist straight-forward:
n, mean = 0, 0
for chunk in iterator:
nCurrent = len(chunk)
meanCurrent = chunk['variable'].mean()
mean = (n * mean + nCurrent * meanCurrent)/(n + nCurrent)
n += nCurrent
aber es ist klar, nicht das, was der allgemeine Ansatz ist. Wie würde ich das für Momente höherer Ordnung tun?
Auch ich bin daran interessiert, die Verteilung zu planen. Sagen wir, ich entscheide mich für ein Histogramm. Ohne die Grenzen der Verteilung zu Beginn zu kennen, ist es schwierig, die Behälter zu erstellen. Muss ich zuerst einmal durch die gesamte Distribution iterieren, um die Min- und Max-Werte zu erhalten, und dann Bins erstellen und mit dem Zählen beginnen? Oder gibt es einen besseren Ansatz?