pandas 时间从UTC到本地

pandas time shift from utc to local( pandas 时间从UTC到本地)
本文介绍了 pandas 时间从UTC到本地的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在尝试将 UTC 时间转换为本地时间.这是我之前的经历

I am trying to convert utc time to local time. This is what I had before

df_combined_features['timestamp'][1:10]
2013-01-24   2013-01-24 11:00:00
2013-04-25   2013-04-25 10:00:00
2013-07-25   2013-07-25 10:00:00
2013-10-24   2013-10-24 10:00:00
2014-01-30   2014-01-30 11:00:00
2014-04-24   2014-04-24 10:00:00
2014-07-24   2014-07-24 10:00:00
2014-10-23   2014-10-23 10:00:00
2015-01-27   2015-01-27 11:00:00

这就是我所做的

df_combined_features['time_stamp'].tz_localize('US/Central')[1:10]
2013-01-24 00:00:00-06:00   2013-01-24 11:00:00
2013-04-25 00:00:00-05:00   2013-04-25 10:00:00
2013-07-25 00:00:00-05:00   2013-07-25 10:00:00
2013-10-24 00:00:00-05:00   2013-10-24 10:00:00
2014-01-30 00:00:00-06:00   2014-01-30 11:00:00
2014-04-24 00:00:00-05:00   2014-04-24 10:00:00
2014-07-24 00:00:00-05:00   2014-07-24 10:00:00
2014-10-23 00:00:00-05:00   2014-10-23 10:00:00
2015-01-27 00:00:00-06:00   2015-01-27 11:00:00

我认为它做了正确的事情,但我不明白输出格式.特别是

I think it did the right thing, but I dont understand the output format. In particular

1) 为什么转换后的列显示为新索引?

1) Why do the converted cols appear as the new index?

2) 我知道 -06:00(最后一行)是一个小时班次,所以时间是早上 6:00,我如何检索该信息,准确的当地时间?

2) I understand that -06:00 (in the last row) is an hour shift, so the time is 6:00 am, how do I retrieve that information, the exact local time?

所需的输出,我想要发布的确切时间,包括与 UTC 的偏移量.当地时间 UTC 时间

Desired output, I want the exact time to be posted, including the offset from utc. local time utc time

    2013-01-24 05:00:00   2013-01-24 11:00:00
    2013-04-25 05:00:00   2013-04-25 10:00:00
    2013-07-25 05:00:00   2013-07-25 10:00:00
    2013-10-24 05:00:00   2013-10-24 10:00:00
    2014-01-30 05:00:00   2014-01-30 11:00:00
    2014-04-24 05:00:00   2014-04-24 10:00:00
    2014-07-24 05:00:00   2014-07-24 10:00:00
    2014-10-23 05:00:00   2014-10-23 10:00:00
    2015-01-27 05:00:00   2015-01-27 11:00:00

推荐答案

当你调用 tz.localize 你本地化索引,如果你想修改列你需要调用 dt.localize 还要添加时区偏移调用 dt.tz_convert('UTC'):

In [125]:
df['timestamp'].dt.tz_localize('utc').dt.tz_convert('US/Central')

Out[125]:
index
2013-01-24   2013-01-24 05:00:00-06:00
2013-04-25   2013-04-25 05:00:00-05:00
2013-07-25   2013-07-25 05:00:00-05:00
2013-10-24   2013-10-24 05:00:00-05:00
2014-01-30   2014-01-30 05:00:00-06:00
2014-04-24   2014-04-24 05:00:00-05:00
2014-07-24   2014-07-24 05:00:00-05:00
2014-10-23   2014-10-23 05:00:00-05:00
2015-01-27   2015-01-27 05:00:00-06:00
Name: timestamp, dtype: datetime64[ns, US/Central]

比较没有.dt:

Compare without .dt:

In [126]:    
df['timestamp'].tz_localize('utc').tz_convert('US/Central')
Out[126]:
index
2013-01-23 18:00:00-06:00   2013-01-24 11:00:00
2013-04-24 19:00:00-05:00   2013-04-25 10:00:00
2013-07-24 19:00:00-05:00   2013-07-25 10:00:00
2013-10-23 19:00:00-05:00   2013-10-24 10:00:00
2014-01-29 18:00:00-06:00   2014-01-30 11:00:00
2014-04-23 19:00:00-05:00   2014-04-24 10:00:00
2014-07-23 19:00:00-05:00   2014-07-24 10:00:00
2014-10-22 19:00:00-05:00   2014-10-23 10:00:00
2015-01-26 18:00:00-06:00   2015-01-27 11:00:00
Name: timestamp, dtype: datetime64[ns]

这篇关于 pandas 时间从UTC到本地的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Using IBM_DB with Pandas(将 IBM_DB 与 Pandas 一起使用)
Parse User name for extracting user location Twitter(解析用户名以提取用户位置 Twitter)
Scrape User Location from Twitter(从 Twitter 抓取用户位置)
Throttle pandas apply, when using an API call(使用 API 调用时适用油门 pandas )
Making a discord.py (rewrite version) timer based off of UTC time(根据 UTC 时间制作 discord.py(重写版本)计时器)
How to calculate percent by row and annotate 100 percent stacked bars(如何按行计算百分比并注释 100% 堆积条)