Ich habe einen Datenrahmen, die Partituren von Spielern in einem Spiel, indiziert durch die Zeit repräsentieren:Erhalten erstes Mal Auftreten in einem Pandas Datenrahmen mit Datumzeit indiziert
player_id
2016-03-01 873970260
2016-03-02 8470693237
2016-03-02 221785899
2016-03-03 569452661
2016-03-04 221785899
2016-03-04 8276343674
Ich mag eine neue Spalte enthält einen Booleschen hinzufügen in dem es heißt, wenn die player_id
zum ersten Mal in der Zeitreihe erscheint:
player_id new_player
day
2016-03-01 873970260 True
2016-03-02 8470693237 True
2016-03-02 221785899 True
2016-03-03 569452661 True
2016-03-04 221785899 False
2016-03-04 8276343674 True
True
bedeutet „noch nie gesehen“, False
bedeutet „bereits in der Vergangenheit erzielte“.
Was wäre der schnellste Weg? Unter Verwendung von isin
auf Scheiben (d. H. Vergleichen von dataframe[day]
zu dataframe[:day-1]
)?
Hier ist, wie ich die Probe Datenrahmen bauen:
import pandas as pd
import datetime as dt
gamedf = pd.DataFrame([873970260,8470693237,221785899,569452661,221785899,8276343674],
columns=['player_id'],
index=[dt.datetime(2016, 3, 1), dt.datetime(2016, 3, 2), dt.datetime(2016, 3, 2), dt.datetime(2016, 3, 3), dt.datetime(2016, 3, 4), dt.datetime(2016, 3, 4)])
Sie haben zusätzliche Zeilen in der zweiten Datafram e. – ayhan
mein Schlechter, gerade repariert es. – chilladx