在 pandas to_datetime 中使用时区
问题描述
我有时间从 epochs 时间戳我使用 data.Time_req = pd.to_datetime(data.Time_req)
但是我得到了 UTC 时间,我需要从给定时间开始 +5:30.我如何告诉熊猫使用 'IST'
时区或只是 5hrs 30 mins
进一步使用它当前显示的时间.例如.7 hrs
应该变成 12:30 hrs
等等.
I have time from epochs timestamps
I use data.Time_req = pd.to_datetime(data.Time_req)
But I get UTC time, I need +5:30 from the given time. How do I tell pandas to use 'IST'
timezone or just 5hrs 30 mins
further to the time it currently shows me. eg. 7 hrs
should become 12:30 hrs
and so on.
解决方案
可以使用tz_localize
将时区设置为 UTC
/+0000,然后 tz_convert
添加你想要的时区:
You can use tz_localize
to set the timezone to UTC
/+0000, and then tz_convert
to add the timezone you want:
start = pd.to_datetime('2015-02-24')
rng = pd.date_range(start, periods=10)
df = pd.DataFrame({'Date': rng, 'a': range(10)})
df.Date = df.Date.dt.tz_localize('UTC').dt.tz_convert('Asia/Kolkata')
print (df)
Date a
0 2015-02-24 05:30:00+05:30 0
1 2015-02-25 05:30:00+05:30 1
2 2015-02-26 05:30:00+05:30 2
3 2015-02-27 05:30:00+05:30 3
4 2015-02-28 05:30:00+05:30 4
5 2015-03-01 05:30:00+05:30 5
6 2015-03-02 05:30:00+05:30 6
7 2015-03-03 05:30:00+05:30 7
8 2015-03-04 05:30:00+05:30 8
9 2015-03-05 05:30:00+05:30 9
使用时区.
如果需要只添加Timedelta
:
df.Date = df.Date + pd.Timedelta('05:30:00')
print (df)
Date a
0 2015-02-24 05:30:00 0
1 2015-02-25 05:30:00 1
2 2015-02-26 05:30:00 2
3 2015-02-27 05:30:00 3
4 2015-02-28 05:30:00 4
5 2015-03-01 05:30:00 5
6 2015-03-02 05:30:00 6
7 2015-03-03 05:30:00 7
8 2015-03-04 05:30:00 8
9 2015-03-05 05:30:00 9
注意:添加 Timedelta
将更改与 datetime
对象关联的纪元时间戳.对于许多应用程序来说,这可能不是所希望的.
NOTE: Adding Timedelta
will change the epoch timestamp associated with the datetime
object. This may not be desired for many applications.
相关文章