在pandas datafram中为时间添加时区

2024-04-26 02:58:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个以秒为单位的专栏。这个时间的时区是UTC,但熊猫不知道。我想补充一下这个信息。在

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

所以我做了这样的事情:

^{pr2}$

当我打印存储在df_times中的时间戳时,我有:

print(df_times.strftime('%s'))

['1484157704' '1489486185' '1489157524' ..., '1490684098' '1490284646'
 '1489602636']

所以。。。在

我在第0行的UTC时间:1484161304在我添加了有关时区的信息后,被更改为1484157704。。。在

我的时区是“欧洲/华沙”,我的时区和UTC的区别是3600,而{}。在

所以pandas把我的UTC时间当作“欧洲/华沙”来对待,并把它们推迟了一个小时,使它们成为UTC,这破坏了我的数据。在

如何将UTC时区设置为我的时间以避免发生这种情况?在


Tags: 信息dfdatadate时间单位事情transaction
1条回答
网友
1楼 · 发布于 2024-04-26 02:58:55

所以我无法复制您的结果,但是我使用了一种稍微不同的方法来显示创建的时间戳。我没有使用支持稍差的%s,而是直接计算UTC epoch的秒数:

代码:

utc_at_epoch = pytz.utc.localize(dt.datetime(1970, 1, 1))
for t in df_times.tz_localize(pytz.utc):
    print(int((t - utc_at_epoch).total_seconds()))

测试代码:

^{pr2}$

结果:

   transaction_creation_date
0                 1484161304
1                 1489489785
2                 1489161124
1484161304
1489489785
1489161124

相关问题 更多 >