【问题标题】:How do I best adjust a timestamp with a timezone in python?如何在 python 中最好地调整带有时区的时间戳?
【发布时间】:2016-09-10 23:39:30
【问题描述】:

我需要对我的 pandas 数据框中的日期进行操作,但我的代码有一个错误。具体来说,我正在从 csv 文件中导入一列时间戳。

x['Created at']
0       2016-05-13 13:28:41 -0400
1       2016-05-13 05:11:18 -0400
3       2016-05-12 18:06:42 -0400
4       2016-05-12 16:06:24 -0400
5       2016-05-12 13:58:01 -0400
6       2016-05-12 03:30:27 -0400

然后我将此数据更改为日期时间。我正在通过pandas.to_datetime(df['date']) 执行此操作,但是当我执行此操作时,时间会偏移 4 小时。

x.Createdat
0      2016-05-13 17:28:41
1      2016-05-13 09:11:18
3      2016-05-12 22:06:42
4      2016-05-12 20:06:24
5      2016-05-12 17:58:01
6      2016-05-12 07:30:27

我假设这是因为时间戳末尾的-0400,但我无法找出解决此问题的最佳方法,因此我可以在我自己的时区汇总这些数据。

【问题讨论】:

    标签: python datetime pandas


    【解决方案1】:

    如果 -400 是您不需要或不想要的信息,那么只需将您对 pandas.to_datetime(df['date']) 的使用更改为 pandas.to_datetime(df['date'].apply(lambda x: x[:-6]),这将从字符串中删除 -400。不是最好和最强大的方法,但它会起作用。

    如果您想使用 -400 但又想将其转换为不同的时区,请查看tz_localize,如以下答案所述:convert gmt to local timezone in pandas

    另一个应该有帮助的工具是使用pytz:pytz - Converting UTC and timezone to local time

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 2016-11-11
      • 1970-01-01
      • 2015-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多