为了账号安全,请及时绑定邮箱和手机立即绑定

更改熊猫中日期-时间列的时区并添加为层次结构索引

更改熊猫中日期-时间列的时区并添加为层次结构索引

明月笑刀无情 2021-03-29 16:09:24
我有带有UTC时间戳记的数据。我想将此时间戳的时区转换为“ US / Pacific”,并将其作为层次结构索引添加到pandas DataFrame。我已经能够将时间戳转换为索引,但是当我尝试将其作为列或索引添加回DataFrame时,它将丢失时区格式。>>> import pandas as pd>>> dat = pd.DataFrame({'label':['a', 'a', 'a', 'b', 'b', 'b'], 'datetime':['2011-07-19 07:00:00', '2011-07-19 08:00:00', '2011-07-19 09:00:00', '2011-07-19 07:00:00', '2011-07-19 08:00:00', '2011-07-19 09:00:00'], 'value':range(6)})>>> dat.dtypes#datetime    object#label       object#value        int64#dtype: object现在,如果我尝试直接转换系列,则会遇到错误。>>> times = pd.to_datetime(dat['datetime'])>>> times.tz_localize('UTC')#Traceback (most recent call last):#  File "<stdin>", line 1, in <module>#  File "/Users/erikshilts/workspace/schedule-detection/python/pysched/env/lib/python2.7/site-packages/pandas/core/series.py", line 3170, in tz_localize#    raise Exception('Cannot tz-localize non-time series')#Exception: Cannot tz-localize non-time series如果将其转换为索引,则可以将其作为时间序列进行操作。注意,索引现在具有太平洋时区。>>> times_index = pd.Index(times)>>> times_index_pacific = times_index.tz_localize('UTC').tz_convert('US/Pacific')>>> times_index_pacific#<class 'pandas.tseries.index.DatetimeIndex'>#[2011-07-19 00:00:00, ..., 2011-07-19 02:00:00]#Length: 6, Freq: None, Timezone: US/Pacific但是,现在我遇到了将索引添加回数据框的问题,因为它失去了时区格式:>>> dat_index = dat.set_index([dat['label'], times_index_pacific])>>> dat_index#                                      datetime label  value#label                                                      #a     2011-07-19 07:00:00  2011-07-19 07:00:00     a      0#      2011-07-19 08:00:00  2011-07-19 08:00:00     a      1#      2011-07-19 09:00:00  2011-07-19 09:00:00     a      2#b     2011-07-19 07:00:00  2011-07-19 07:00:00     b      3#      2011-07-19 08:00:00  2011-07-19 08:00:00     b      4#      2011-07-19 09:00:00  2011-07-19 09:00:00     b      5您会注意到索引返回到UTC时区,而不是转换后的太平洋时区。如何更改时区并将其作为索引添加到DataFrame?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号