Ich habe eine Zeitreihe von datetime.date indiziert. Hier sind die ersten Knoten der Serie:Wie schneidet man eine Pandas-Zeitreihe an Daten ab, die nicht im Index enthalten sind?
1999-12-31 0
2000-06-30 170382.118454
2000-12-29 -319260.443362
ich von Anfang an der Reihe schneiden möchten, bis 28. Dezember 2000, aber das funktioniert nicht, da zu diesem Zeitpunkt nicht im Index ist (ich bekomme eine KeyError wenn ich original_series[:datetime.date(2000,12,28)]
versuchen. ich habe auch versucht, den Index zu Zeitstempel konvertieren, aber das gibt sehr falsche Ergebnisse (produziert es gefälschte Knoten, siehe unten), so fragte ich mich, ob es für dieses Problem ein guter Ansatz ist.
test = pd.Series(original_series.values, map(pd.Timestamp, original_series.index))
Auf den ersten Blick sieht das gut aus:
1999-12-31 0.000000
2000-06-30 170382.118454
2000-12-29 -319260.443362
Aber dann versuche ich meine Slicing zu tun (wo diese zusätzlichen Tage im Januar 2000 kommen aus?):
In [84]: test[:'2000-12-28']
Out[84]:
1999-12-31 0.000000
2000-06-30 170382.118454
2000-01-03 -71073.979016
2000-01-04 100498.744748
2000-01-05 91104.743684
2000-01-06 82290.255459
Ihre answe r ist absolut richtig, aber ich war auch urkomisch dumm - ich hatte meine Zeitreihe nicht nach Index sortiert, daher meine Verwirrung über die "hergestellten" Daten. Danke für die Hilfe. –