UserWarning: Boolean Series key will be
reindexed to match DataFrame index. "DataFrame index.", UserWarning
und sollte ich mich darum kümmern? Ich habe eine CSV-Datei mit drei Spalten: org, month, person.
%Vor% Was ich in pandas.core.frame.DataFrame
mit gelesen habe:
Das Endziel ist es, die Schnittmenge von Personen zwischen zwei aufeinanderfolgenden Perioden mit der Gruppe von Personen in der ersten Periode zu vergleichen.
%Vor%Bearbeiten: Ich habe es mit zu arbeiten:
%Vor%Was eine Ausgabe wie folgt erzeugt:
%Vor%Aber es ist wirklich langsam und irgendwie hässlich ... bei der derzeitigen Rate schätzt meine Umschlagsberechnung es auf ungefähr 22 Stunden für einen 2-Jahres-Datenstapel.
Zugegeben, ich habe noch nie Pandas benutzt, also ist das vielleicht nicht idiomatisch. Dies verwendet nur grundlegende Python-Strukturen.
%Vor% Dies erstellt eine "im Cache gespeicherte" Nachschlagetabelle in org_month_dict
, die nach Organisation und Monat indiziert ist. Dadurch ersparen Sie sich die teure Suche nach data[data.org == _org][data.month == _m1]
in Ihrer inneren Schleife. Es sollte deutlich schneller als Ihr ursprünglicher Code laufen.
Ich würde Pandas hier nicht unbedingt entlassen. Es hängt von ein paar Dingen ab. Ich denke nicht, dass Pandas eine sehr kompakte Art sind, Ihre Daten zu speichern, obwohl es automatische Komprimierung und sparsame Speicheroptionen hat, die dies weitgehend abschwächen. Ich würde erwarten, dass die Geschwindigkeit ziemlich vernünftig ist, aber Sie müssten es wirklich auf Ihre Daten testen, um es sicher zu sagen.
Es bietet (meiner Meinung nach) eine bequemere Möglichkeit, Ihre Daten zu speichern, und bietet auch bequeme Möglichkeiten, mit Daten umzugehen. Und wenn Sie fertig sind, können Sie Ergebnisse in Tabellenform ausgeben.
Zuerst werde ich die Daten ein wenig erweitern, um die Probleme besser zu demonstrieren.
%Vor%Dann könnten Sie so etwas tun:
%Vor%Ich ignoriere einige Details hier, wie den Breakpoint zwischen Org 1 und Org 2, aber Sie könnten eine Gruppe hinzufügen, um damit umzugehen. In ähnlicher Weise möchten Sie möglicherweise Code hinzufügen, um Tage ohne anwesende Person zu behandeln, und es gibt Möglichkeiten, damit auch umzugehen.
Tags und Links python python-3.x pandas dataframe