【问题标题】:Python Append Timezone info to the datetime index of dataframePython将时区信息附加到数据框的日期时间索引
【发布时间】:2021-01-16 14:31:23
【问题描述】:

我的数据框在 EST 中有日期时间索引。但此信息未附加到日期时间索引。怎么追加?

我的代码:

df.index = 
DatetimeIndex(['2019-10-01 07:49:28', '2019-10-01 07:50:21',
               '2020-07-25 18:48:44', '2020-07-25 18:49:43',
               '2020-07-25 18:50:43', '2020-07-25 18:51:44'],
              dtype='datetime64[ns]', name='Unnamed: 0', length=6, freq=None)
df.index = df.index.replace(tzinfo='EST')

目前的输出:

    df.index.replace(tzinfo='EST')

AttributeError: 'DatetimeIndex' object has no attribute 'replace'

预期输出:

df.index = 
DatetimeIndex(['2019-10-01 07:49:28-05:00', '2019-10-01 07:50:21-05:00',
               '2020-07-25 18:48:44-05:00', '2020-07-25 18:49:43-05:00',
               '2020-07-25 18:50:43-05:00', '2020-07-25 18:51:44-05:00'],
              dtype='datetime64[ns]', name='Unnamed: 0', length=6, freq=None)

【问题讨论】:

标签: python pandas dataframe datetime python-datetime


【解决方案1】:

使用.tz_localize添加时区

itx = pd.DatetimeIndex(['2019-10-01 07:49:28', '2019-10-01 07:50:21',
                        '2020-07-25 18:48:44', '2020-07-25 18:49:43',
                        '2020-07-25 18:50:43', '2020-07-25 18:51:44'],
                        dtype='datetime64[ns]', name='Unnamed: 0')

itx = itx.tz_localize(tz='EST')

Out[285]:
DatetimeIndex(['2019-10-01 07:49:28-05:00', '2019-10-01 07:50:21-05:00',
               '2020-07-25 18:48:44-05:00', '2020-07-25 18:49:43-05:00',
               '2020-07-25 18:50:43-05:00', '2020-07-25 18:51:44-05:00'],
              dtype='datetime64[ns, EST]', name='Unnamed: 0', freq=None)

【讨论】:

  • EST 不是时区,而是一年中某个时间特定时区的 UTC 偏移量。假设数据来自某个时区(这里:美国/东部),本地化到 EST 是错误的;美国/中部有 DST,因此 UTC 偏移量从 EST 变为 EDT。
猜你喜欢
  • 2021-01-19
  • 1970-01-01
  • 1970-01-01
  • 2015-11-23
  • 2015-05-19
  • 2021-03-12
  • 1970-01-01
  • 2019-03-16
  • 2018-07-31
相关资源
最近更新 更多