熊猫to_datetime失去时区

马蒂亚斯

我的原始数据有一列带有ISO8601格式的时间戳的列,如下所示:

'2017-07-25T06:00:02 + 02:00'

由于数据为CSV格式,因此将其作为对象/字符串读取。因此我将其转换为日期时间。

import pandas pd
df['time'] = pd.to_datetime(df['time'], utc=False)

#df['time'][0]
df['time'][0].isoformat()

不幸的是,这导致了UTC时间戳,并且时区丢失了。例如,未设置df ['time'] [0] .tzinfo

时间戳记('2017-07-25 04:00:02')

'2017-07-25T04:00:02'

我正在寻找一种在每个时区对象中保留时区信息的方法。但此后无需将其重新设置为CEST(中欧夏令时),因为此信息已包含在原始数据的ISO8601时区偏移量中。任何想法如何做到这一点?

马蒂亚斯

所以这是我解决的方法。

有一篇关于时区和Python的很棒的文章,它帮助我提出了一个解决方案。它依赖于ISO8601 Python软件包

import iso8601

times = ['2017-07-25 06:00:02+02:00',
         '2017-07-25 08:15:08+02:00',
         '2017-07-25 12:08:00+02:00',
         '2017-07-25 13:10:12+02:00',
         '2017-07-25 15:11:55+02:00',
         '2017-07-25 16:00:00+02:00'
        ]

df = pd.DataFrame(times, columns=['time'])
df['time'] = df['time'].apply(iso8601.parse_date)
df['time'][0]

产生以下输出并保留时区信息。

时间戳记('2017-07-25 06:00:02 + 0200',tz ='+ 02:00')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章