3
我有我的专栏,时间以秒为单位。此时的时区是UTC,但Pandas不知道它。我想添加这些信息。在熊猫数据框中添加时区到时间
df_data['transaction_creation_date']
0 1484161304
1 1489489785
2 1489161124
3 1488904824
4 1484908677
5 1485942900
6 1490854506
7 1485895432
8 1485975392
9 1489266328
10 1488525196
11 1490363033
12 1490617794
13 1486560642
14 1487170224
15 1484923852
所以我做这样的事情:
df_times = pd.DatetimeIndex(pd.to_datetime(df_data['transaction_creation_date'], unit='s'))
df_times = df_times.tz_localize(pytz.utc)
当我打印存储在df_times
时间戳那么我:
print(df_times.strftime('%s'))
['1484157704' '1489486185' '1489157524' ..., '1490684098' '1490284646'
'1489602636']
所以......
我UTC第0行的时间:1484161304
我添加了有关时区的信息后,更改为1484157704
...
我的时区是“欧洲/华沙”,我的时区和UTC的区别是3600
而1484161304 - 1484157704 = 3600
。
熊猫已经将我的UTC时间视为“欧洲/华沙”,并将它们切换一小时,以使它们成为UTC,从而破坏我的数据。
如何设置UTC时区到我的时间,所以它不会发生?
感谢您的回复。我会尽快仔细研究一下。现在我用“os.environ ['TZ'] ='UTC''来”解决“我的代码。感谢我使用.tz_localize(pytz.utc)之后,由于UTC和UTC时区之间没有时差,我的UTC时间戳没有改变(根据我的tz - > Europe/Warsaw)。 – F1sher