我的原始数据有一列带有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] 删除。
我来说两句