Ich lese Python für Datenanalyse von Wes Mckinney, aber ich war von dieser Datenmanipulation überrascht. Sie können alle Verfahren here sehen, aber ich werde versuchen, es hier zusammenzufassen. Angenommen, Sie so etwas wie dieses:Seltsame Datenmanipulation in Pandas
In [133]: agg_counts = by_tz_os.size().unstack().fillna(0)
Out[133]:
a Not Windows Windows
tz 245 276
Africa/Cairo 0 3
Africa/Casablanca 0 1
Africa/Ceuta 0 2
Africa/Johannesburg 0 1
Africa/Lusaka 0 1
America/Anchorage 4 1
...
tz
Zeitzone bedeutet und Not Windows
und Windows
sind Kategorien aus dem User-Agent in den Originaldaten extrahiert, so können wir sehen, dass es 3 Windows-Benutzer und 0 Nicht-Windows-Benutzer in Afrika/Kairo aus den gesammelten Daten.
Dann, um „die Top-Gesamtzeitzonen“ zu bekommen haben wir:
In [134]: indexer = agg_counts.sum(1).argsort()
Out[134]:
tz
24
Africa/Cairo 20
Africa/Casablanca 21
Africa/Ceuta 92
Africa/Johannesburg 87
Africa/Lusaka 53
America/Anchorage 54
America/Argentina/Buenos_Aires 57
America/Argentina/Cordoba 26
America/Argentina/Mendoza 55
America/Bogota 62
...
So an diesem Punkt würde ich gedacht, dass nach den documentation ich Spalt Summieren über (in sum(1)
) und dann Sortierung nach dem Ergebnis mit Argumenten (wie in argsort üblich). Zunächst einmal bin ich nicht sicher, was es bedeutet "Spalten" im Kontext dieser Serie, weil sum(1)
tatsächlich summiert Not Windows
und Windows
Benutzer diesen Wert in der gleichen Zeile wie seine Zeitzone. Außerdem kann ich keine Korrelation zwischen Argsort-Werten und agg_counts
sehen. Zum Beispiel hat Pacific/Auckland
einen "argsort value" (in In[134]
) von 0 und es hat nur eine Summe von 11 Windows
und Not Windows
Benutzer. Asia/Harbin
hat einen Argsort-Wert von 1 und wird mit einer Summe von 3 Windows
und Nicht-Windows-Benutzern angezeigt.
Kann mir jemand erklären, was dort vor sich geht? Offensichtlich verstehe ich etwas falsch.
Es ist ein wirklich verwirrend Beispiel in diesem Buch) – Winand