如何从 datetime64[ns] 获取时间偏移信息
How to get Time offset information off datetime64[ns]
我正在将 datetime[ns] 列转换为不同的时区,结果列如下所示:
0 2011-05-25 20:30:00+02:00
1 2011-05-24 20:30:00+02:00
2 2011-05-20 20:30:00+02:00
3 2011-05-19 20:30:00+02:00
4 2011-05-15 13:30:00+02:00
我正在尝试提取偏移量信息,这里 +02:00
。
offset = converted.apply(lambda x: x.strftime('%z'))
但它给了我一个空白栏。
当列为dtype == object/str时,offest信息消失,所以也无法用正则表达式输出。
有什么想法吗?
我觉得你需要strftime
:
print (df)
date
0 2011-05-25 20:30:00+02:00
1 2011-05-24 20:30:00+02:00
2 2011-05-20 20:30:00+02:00
3 2011-05-19 20:30:00+02:00
4 2011-05-15 13:30:00+02:00
print (df.date.dt.tz)
Europe/Bratislava
df['timezone'] = df.date.dt.strftime('%z')
print (df)
date timezone
0 2011-05-25 20:30:00+02:00 +0200
1 2011-05-24 20:30:00+02:00 +0200
2 2011-05-20 20:30:00+02:00 +0200
3 2011-05-19 20:30:00+02:00 +0200
4 2011-05-15 13:30:00+02:00 +0200
如果 date
列的 dtype
是 object/string
使用 indexing with str:
df['date'] = df.date.astype(str)
df['timezone'] = df.date.str[-6:]
print (df)
date timezone
0 2011-05-25 20:30:00+02:00 +02:00
1 2011-05-24 20:30:00+02:00 +02:00
2 2011-05-20 20:30:00+02:00 +02:00
3 2011-05-19 20:30:00+02:00 +02:00
4 2011-05-15 13:30:00+02:00 +02:00
我正在将 datetime[ns] 列转换为不同的时区,结果列如下所示:
0 2011-05-25 20:30:00+02:00
1 2011-05-24 20:30:00+02:00
2 2011-05-20 20:30:00+02:00
3 2011-05-19 20:30:00+02:00
4 2011-05-15 13:30:00+02:00
我正在尝试提取偏移量信息,这里 +02:00
。
offset = converted.apply(lambda x: x.strftime('%z'))
但它给了我一个空白栏。
当列为dtype == object/str时,offest信息消失,所以也无法用正则表达式输出。
有什么想法吗?
我觉得你需要strftime
:
print (df)
date
0 2011-05-25 20:30:00+02:00
1 2011-05-24 20:30:00+02:00
2 2011-05-20 20:30:00+02:00
3 2011-05-19 20:30:00+02:00
4 2011-05-15 13:30:00+02:00
print (df.date.dt.tz)
Europe/Bratislava
df['timezone'] = df.date.dt.strftime('%z')
print (df)
date timezone
0 2011-05-25 20:30:00+02:00 +0200
1 2011-05-24 20:30:00+02:00 +0200
2 2011-05-20 20:30:00+02:00 +0200
3 2011-05-19 20:30:00+02:00 +0200
4 2011-05-15 13:30:00+02:00 +0200
如果 date
列的 dtype
是 object/string
使用 indexing with str:
df['date'] = df.date.astype(str)
df['timezone'] = df.date.str[-6:]
print (df)
date timezone
0 2011-05-25 20:30:00+02:00 +02:00
1 2011-05-24 20:30:00+02:00 +02:00
2 2011-05-20 20:30:00+02:00 +02:00
3 2011-05-19 20:30:00+02:00 +02:00
4 2011-05-15 13:30:00+02:00 +02:00