在 pandas 使用时区to_datetime [英] using time zone in pandas to_datetime
问题描述
我有来自纪元时间戳的时间
我使用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_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.
这篇关于在 pandas 使用时区to_datetime的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!