提问人:xpanta 提问时间:11/15/2023 最后编辑:FObersteinerxpanta 更新时间:11/16/2023 访问量:48
如何在 Python 中从字符串转换、应用时区偏移量、幼稚并转换回字符串的 Pandas 系列索引?
How can I convert from string, apply the timezone offset, make naive and convert back to string a Pandas Series Index in Python?
问:
我有一个 Pandas 时间序列对象,其索引如下所示:
Index(['2023-05-31T00:05:00+0300', '2023-05-31T00:06:00+0300',
...
'2023-09-15T13:48:00+0300', '2023-09-15T13:49:00+0300'],
dtype='object', length=76106)
我需要转换成这个:
Index(['2023-05-30T21:05:00', '2023-05-30T21:06:00',
...
'2023-09-15T10:48:00', '2023-09-15T10:49:00'],
dtype='object', length=76106)
我试图做的,有效地,是将字符串转换为日期时间,减去时区偏移量,使其幼稚,然后将其转换回字符串。
我知道如何在很多(有点复杂)的步骤中做到这一点,这些步骤将涉及将系列转换为字典,一个接一个地转换(日期时间)键,使字典成为一个新系列,但是有没有办法通过几个步骤来做到这一点,可能是就地的?
任何帮助将不胜感激。
答:
3赞
Nick
11/15/2023
#1
您可以使用 pd.to_datetime
将索引转换为日期时间,通过指定 将时区转换为 ,然后使用 strftime
格式化结果:UTC
utc=True
idx = pd.Index(['2023-05-31T00:05:00+0300', '2023-05-31T00:06:00+0300','2023-09-15T13:48:00+0300', '2023-09-15T13:49:00+0300'])
idx = pd.to_datetime(idx, utc=True).strftime('%Y-%m-%dT%H:%M:%S')
输出:
Index(['2023-05-30T21:05:00', '2023-05-30T21:06:00', '2023-09-15T10:48:00',
'2023-09-15T10:49:00'],
dtype='object')
评论
0赞
Nick
11/16/2023
@FObersteiner好点!我已经更新了答案以反映这一点。谢谢
评论