2017-01-08 2 views
1

Ich habe eine Liste, die zum Beispiel heißt X. X hat die Anzahl der Dateinamen in einem bestimmten Verzeichnis. Zum Beispiel:Extrahieren bestimmter Elemente aus einer Liste einer Zeichenfolge und Drehen in Datetime mit Pandas

X = ['director_send_20140212', 'send_help20150315', 'hello_jeep_20160322'....etc] 

Jetzt will ich die Daten aus dieser diesen Listen extrahieren und sie in einen Datetime-Index der Daten konvertieren, damit ich es zu indizieren Datenrahmen von Daten verwenden kann. Also von oben Beispiel möchte ich nur die drei Daten ... aber in Wirklichkeit ist es eine größere Sammlung von Dateinamen

Um das Leben einfacher zu machen beginnen alle Daten mit 20 (dh Jahr 2000 und darüber hinaus), und es gibt keine Situationen wo 20 irgendwo anders im Dateinamen erscheint. Darüber hinaus ist das Format yyyymmdd/.

Also ich möchte eine Reihe von Daten erstellen mit dem Datetimes Index von Pandas zur Verfügung gestellt!

Antwort

1

Ich mache ein paar Annahmen über die Namenskonventionen Ihrer Dateinamen. Hauptsächlich sind die Daten der letzte Teil der Daten nach dem Unterstrich, und der letzte Teil enthält keine numerischen Daten, die nicht das Datum sind.

aber sagen, dass hier ein Beispiel Liste Verständnis:

>>> from datetime import datetime 
>>> [datetime.strptime(''.join(c for c in file_name.split('_')[-1] if c.isdigit()), "%Y%m%d") for file_name in X] 
[datetime.datetime(2014, 2, 12, 0, 0), datetime.datetime(2015, 3, 15, 0, 0), datetime.datetime(2016, 3, 22, 0, 0)] 
Verwandte Themen