Seite 1 von 1

Pandas Zeitangabe Formatieren

Verfasst: Montag 4. Mai 2015, 19:35
von Lienz20013
He, Ho ich habe ein Problem mit pandas ein Zeitangaben einzulesen und zwar sieht es folgendermaßen aus:
'29. Mrz. 15 10:48:34'
das hätte ich gern in der Form:
'2015-03-29 10:48:34'

Weiß jemand wie ich das Formatieren kann? Weil mit dem oberen Beispiel kann man nicht in pandas arbeiten.

Re: Pandas Zeitangabe Formatieren

Verfasst: Dienstag 5. Mai 2015, 11:17
von sparrow
Python kann lokalisierte Datumsangaben lesen.
Ich weiß nicht wie das unter anderen Betriebssystemen ist, aber unter Windows musst du ihm unter Umständen unter die Arme greifen:

Code: Alles auswählen

>>> import locale
>>> import datetime
>>> locale.setlocale(locale.LC_ALL, 'deu_deu')
'German_Germany.1252'
>>> a = "29. Mrz. 15 10:48:34"
>>> b = datetime.datetime.strptime(a, "%d. %b. %y %H:%M:%S")
>>> b
datetime.datetime(2015, 3, 29, 10, 48, 34)
Damit hast du den Zeitstempel schon einmal in eine datetime.datetime-Objekt gewandelt. Wie man das dann in ein neues Format ändert, kriegst du selber raus. (Stichwort: strftime)

Ich weiß nicht ob man das mit der setzen von "locale" auch generischer machen kann, denn unter Linux wird das wahrscheinlich nicht deu_deu sondern de_DE sein.

Re: Pandas Zeitangabe Formatieren

Verfasst: Dienstag 5. Mai 2015, 13:04
von darktrym
Tatsache auch kaputtes wie "Mrz".

Re: Pandas Zeitangabe Formatieren

Verfasst: Dienstag 5. Mai 2015, 13:37
von sparrow
Naja... so richtig kaputt ist das nicht.

Re: Pandas Zeitangabe Formatieren

Verfasst: Dienstag 5. Mai 2015, 13:42
von BlackJack
@sparrow: Da steht aber „Mär.” und der OP hat „Mrz.”

Da AFAIK MS Office den März mit Mrz. abkürzt ist das natürlich ein de facto Standard. :-)

Re: Pandas Zeitangabe Formatieren

Verfasst: Dienstag 5. Mai 2015, 13:44
von sparrow
Ich nehme alles zurück und behaupte das Gegenteil!