Wie man die nächstgelegene einzelne Zeile nach einem bestimmten datetime-index mit Python Pandas
DataFrame ich habe:
A B C
2012-01-01 1 2 3
2012-01-05 4 5 6
2012-01-10 7 8 9
2012-01-15 10 11 12
Was ich nun benutze:
date_after = dt.datetime( 2012, 1, 7 )
frame.ix[date_after:].ix[0:1]
Out[1]:
A B C
2012-01-10 7 8 9
Gibt es eine bessere Möglichkeit, dies zu tun? Ich mag es nicht, dass ich angeben müssen .ix[0:1] statt .ix[0], aber wenn ich nicht der Ausgang sich ändert, um eine TimeSeries, anstatt eine einzelne Zeile in einem DataFrame. Ich finde es schwieriger zu arbeiten mit einer gedrehten TimeSeries zurück auf dem ursprünglichen DataFrame.
Ohne .ix[0:1]
:
frame.ix[date_after:].ix[0]
Out[1]:
A 7
B 8
C 9
Name: 2012-01-10 00:00:00
Dank,
John
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möchten Sie vielleicht zu gehen direkt den index:
Einen Hauch wortreich aber Sie könnten es in eine Funktion aus. Ungefähr so gut wie Sie erhalten (
O(log n)
)Konnte nicht widerstehen, dies zu beantworten, obwohl die Frage gestellt wurde, und antwortete, im Jahr 2012 von Wes sich selbst, und wieder im Jahr 2015, durch ajsp. Ja, neben den 'abschneiden', können Sie auch get_loc mit der option "nearst'
Konnte nicht widerstehen, dies zu beantworten, obwohl die Frage gestellt wurde, und antwortete, im Jahr 2012 von Wes selbst. Ja, verwenden Sie einfach abschneiden.