python - 如何转换 Pandas 中日期时间列的时区,然后删除时区?

标签 python pandas datetime timestamp datetime-format

我有一个包含日期时间的列(非索引列)。例如,前五个条目看起来像这样:

[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 我目前正在执行以下操作:

times.dt.tz_localize('GMT').dt.tz_convert('America/Los_Angeles')

虽然这成功地将列从 UTC 转换为 PST,但输出包含我不想要的无关组件。它看起来像下面这样:

[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?谢谢!

最佳答案

只需添加 .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]

关于python - 如何转换 Pandas 中日期时间列的时区,然后删除时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53733158/

相关文章:

python - Django 将 ManyToManyField 添加到 ModelForm

python - 用 null python pandas 替换 NaN

python - Pandas DataFrame 添加转换后的行

string - Oracle 中的日期月份名称语言?

c# - LINQ to Entities 无法识别方法 'System.DateTime ConvertTimeFromUtc(System.DateTime, System.TimeZoneInfo)' 方法

python - 一年中给定月份的 Pandas 日期范围

带有 Google App Engine 的 iPhone 应用程序

python - 将属性 getter 用作类的常量变量是个好主意吗

Python Pandas,如何替换计数小于 X 的值

python - 如何将 Python 元组转换为 .csv 文件?