Wenn ich pandas read_csv verwende, um eine Spalte mit einem timezone aware datetime zu lesen (und diese Spalte als Index anzugeben), konvertiert pandas es in einen timezone naive utc DatetimeIndex.Wie Zeitzonen bewusste Datumsangaben als Zeitzone naive lokale DatetimeIndex mit read_csv in Pandas lesen?
Daten in Test.csv:
DateTime,Temperature 2016-07-01T11:05:07+02:00,21.125 2016-07-01T11:05:09+02:00,21.138 2016-07-01T11:05:10+02:00,21.156 2016-07-01T11:05:11+02:00,21.179 2016-07-01T11:05:12+02:00,21.198 2016-07-01T11:05:13+02:00,21.206 2016-07-01T11:05:14+02:00,21.225 2016-07-01T11:05:15+02:00,21.233
-Code von csv zu lesen:
In [1]: import pandas as pd
In [2]: df = pd.read_csv('Test.csv', index_col=0, parse_dates=True)
Daraus ergibt sich ein Index, der die Zeitzone naive UTC-Zeit darstellt:
In [3]: df.index
Out[3]: DatetimeIndex(['2016-07-01 09:05:07', '2016-07-01 09:05:09',
'2016-07-01 09:05:10', '2016-07-01 09:05:11',
'2016-07-01 09:05:12', '2016-07-01 09:05:13',
'2016-07-01 09:05:14', '2016-07-01 09:05:15'],
dtype='datetime64[ns]', name='DateTime', freq=None)
Ich habe versucht, eine date_parser Funktion zu verwenden:
In [4]: date_parser = lambda x: pd.to_datetime(x).tz_localize(None)
In [5]: df = pd.read_csv('Test.csv', index_col=0, parse_dates=True, date_parser=date_parser)
Dies ergab das gleiche Ergebnis.
Wie kann ich read_csv eine DatetimeIndex erstellen, die Zeitzone naive ist und stellt die Ortszeit anstelle der UTC-Zeit?
Ich benutze Pandas 0.18.1.
Haben Sie sich diese [http://stackoverflow.com/questions/16628819/convert-pandas-timezone-aware-datetimetindex-to-naive-timestamp-but-in-certain-t?rq=1 angesehen) –
Ja, habe ich. Aber diese spezielle Frage betrifft den Umgang mit Zeitzoneninformationen, die tatsächlich vorhanden sind. In meiner Frage verliert pandas.read_csv die Zeitzoneninformationen, indem es das Datum-Zeit-Lesen von der CSV in eine Zeitzone naive utc Datetime umwandelt. – Puggie