问题描述
我有一列(非索引列),其中包含日期时间.例如,前五个条目如下所示:
I have a column (non-index column) that has datetimes inside it. For example, the first five entries look something like this:
[Timestamp('2018-11-15 19:57:55'),
Timestamp('2018-11-15 19:59:46'),
Timestamp('2018-11-15 20:00:59'),
Timestamp('2018-11-15 20:01:41'),
Timestamp('2018-11-15 20:01:54')]
我想将条目从 UTC 转换为太平洋时区.假设该列被称为 times 我目前正在执行以下操作:
I want to convert the entries from UTC to the Pacific timezone. Assuming the column is called times I am currently doing the following:
times.dt.tz_localize('GMT').dt.tz_convert('America/Los_Angeles')
虽然这成功地将列从 UTC 转换为 PST,但输出包含我不想要的无关组件.如下所示:
While this successfully converts the column from UTC to PST, the output has extraneous components that I do not want. It looks like the following:
[Timestamp('2018-11-15 11:57:55-0800', tz='America/Los_Angeles'),
Timestamp('2018-11-15 11:59:46-0800', tz='America/Los_Angeles'),
Timestamp('2018-11-15 12:00:59-0800', tz='America/Los_Angeles'),
Timestamp('2018-11-15 12:01:41-0800', tz='America/Los_Angeles'),
Timestamp('2018-11-15 12:01:54-0800', tz='America/Los_Angeles')]
如何从时间戳中删除或忽略 -0800?谢谢!
How do I remove or ignore the -0800 from the timestamps? Thanks!
推荐答案
只需添加最后一步.tz_localize(None):
import pandas as pd
d = pd.Series(['2018-11-15 19:57:55', '2018-11-15 19:59:46'])
d = pd.to_datetime(d)
d
0 2018-11-15 19:57:55
1 2018-11-15 19:59:46
dtype: datetime64[ns]
d_pacific_tz_aware = d.dt.tz_localize("GMT").dt.tz_convert('America/Los_Angeles')
d_pacific_tz_aware
0 2018-11-15 11:57:55-08:00
1 2018-11-15 11:59:46-08:00
dtype: datetime64[ns, America/Los_Angeles]
d_pacific_tz_naive = d.dt.tz_localize("GMT").dt.tz_convert('America/Los_Angeles').dt.tz_localize(None)
d_pacific_tz_naive
0 2018-11-15 11:57:55
1 2018-11-15 11:59:46
dtype: datetime64[ns]
这篇关于如何在 Pandas 中转换 datetime 列的时区?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)