【发布时间】:2017-09-09 16:51:24
【问题描述】:
我的专栏以秒为单位。这次的时区是 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']
所以...
我在第 0 行的 UTC 时间:1484161304 在我添加了有关时区的信息后更改为 1484157704...
我的时区是“欧洲/华沙”,我的时区和 UTC 之间的差异是 3600 而 1484161304 - 1484157704 = 3600。
因此,pandas 将我的 UTC 时间视为“欧洲/华沙”,并将它们延迟一小时以使它们成为 UTC,这破坏了我的数据。
如何将 UTC 时区设置为我的时间,以免发生这种情况?
【问题讨论】:
标签: python pandas datetime timezone pytz