gpt4 book ai didi

python-2.7 - 将 Pandas DF 列从 UTC 转换为不带日期的美国东部时间

转载 作者:行者123 更新时间:2023-12-01 07:45:06 24 4
gpt4 key购买 nike

我有这个 Pandas 数据框列:

                     time_UTC
0 2015-01-05 16:44:34+00:00
1 2015-08-11 16:44:38+00:00
2 2015-08-02 16:53:25+00:00
3 2015-08-17 16:53:25+00:00
4 2015-09-28 16:53:26+00:00
Name: time_UTC, dtype: datetime64[ns, UTC]

我使用以下方法将其从 UTC 转换为美国东部时区:
list_temp = []
for row in df['time_UTC']:
list_temp.append(Timestamp(row, tz = 'UTC').tz_convert('US/Eastern'))
df['time_EST'] = list_temp

得到这个:
0   2015-01-05 11:44:34-05:00
1 2015-08-11 11:44:38-05:00
2 2015-08-02 11:53:25-05:00
3 2015-08-17 11:53:25-05:00
4 2015-09-28 11:53:26-05:00
Name: time_EST, dtype: datetime64[ns, US/Eastern]

现在,我需要删除条目的日期部分,以便我只获取时间。这是我需要的:
0   11:44:34-05:00
1 11:44:38-05:00
2 11:53:25-05:00
3 11:53:25-05:00
4 11:53:26-05:00
Name: time_EST, dtype: datetime64[ns, US/Eastern]

尝试:

我试过这个:
print df['time_EST'].apply(lambda x: dt.time(x.hour,x.minute,x.second))

进行转换以便删除日期并且我只有时间。但它正在恢复到 UTC 时区。以下是上述命令的输出:
0    16:44:34
1 16:44:38
2 16:53:25
3 16:53:25
4 16:53:26
Name: time_EST, dtype: object

问题:

有没有办法删除日期并将时间保持为美国东部时间,而不会自动恢复为 UTC?

编辑:

要重现该问题,只需复制上面的第一个 DataFrame 并使用以下代码:
import pandas as pd
from pandas.lib import Timestamp
import datetime as dt
df = pd.read_clipboard()

然后复制问题中剩余的代码行。对这个问题的任何帮助将不胜感激。

最佳答案

您要使用 strftime要格式化字符串,还要注意矢量化日期操作:

df = pd.read_clipboard()
df.time_UTC = pd.to_datetime(df.time_UTC)
df['EST'] = (df.time_UTC.dt.tz_localize('UTC')
.tz_convert('US/Eastern')
.strftime("%H:%M:%S"))

In [41]: df
Out[41]:
time_UTC EST
time_UTC
2016-02-15 16:44:34 2016-02-15 16:44:34 11:44:34
2016-02-15 16:44:38 2016-02-15 16:44:38 11:44:38
2016-02-15 16:53:25 2016-02-15 16:53:25 11:53:25
2016-02-15 16:53:25 2016-02-15 16:53:25 11:53:25
2016-02-15 16:53:26 2016-02-15 16:53:26 11:53:26

关于python-2.7 - 将 Pandas DF 列从 UTC 转换为不带日期的美国东部时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35398944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com