首页 > 解决方案 > 使用 pandas 解析具有更改时区(由于夏令时)的 csv

问题描述

我正在尝试解析一个看起来像这样的 csv

time                                val
28.10.2007 00:00:00.000 GMT+0100    1
28.10.2007 00:01:00.000 GMT+0100    2
28.10.2007 01:00:00.000 GMT-0000    3
28.10.2007 01:01:00.000 GMT-0000    4

为此,我使用

pd.read_csv(f,
            parse_dates=[0],
            dayfirst=True,
            index_col=0)

但是,结果看起来像这样

                           val
time                          
2007-10-28 00:00:00-01:00    1
2007-10-28 00:01:00-01:00    2
2007-10-28 00:00:00-01:00    3
2007-10-28 00:01:00-01:00    4

这会导致第 3 行和第 4 行是重复值。有没有办法让 pandas 把这个时间转换成 UTC 并了解 TZ 的变化?

标签: pythonpandasdatetime

解决方案


I tried this and somehow it works but I don't know if this is something that you want.

df = pd.read_csv('data.csv')

df['time'] = pd.to_datetime(df['time'], format='%d.%m.%Y %H:%M:%S.%f GMT%z')
df['time_'] = pd.to_datetime(df['time'], utc=True)

推荐阅读