【发布时间】:2019-05-30 12:49:25
【问题描述】:
我正在处理 Pandas 中的 Excel 文件,我正在尝试处理 日期列,其中日期以 ISO 8601 格式列出。我想取这一列并将日期和时间存储在两个不同的列中。这两列中的值需要存储在东部夏令时。这就是他们应该的样子
Date Date (New) Time (New)
1999-01-01T00:00:29.75 12/31/1998 6:59:58 PM
1999-01-01T00:00:30.00 12/31/1998 6:59:59 PM
1999-01-01T00:00:32.25 12/31/1998 7:00:00 PM
1999-01-01T00:00:30.50 12/31/1998 6:59:58 PM
我已经部分实现了这一点。 我已将这些值转换为东部夏令时间并成功地正确存储了日期值。但是,我希望时间值以 12 小时格式存储,而不是像现在这样以 24 小时格式存储?
这是我目前的输出。
Date Date (New) Time (New)
1999-01-01T00:00:29.75 1998-12-31 19:00:30
1999-01-01T00:00:30.00 1998-12-31 19:00:30
1999-01-01T00:00:32.25 1998-12-31 19:00:32
1999-01-01T00:00:30.50 1998-12-31 19:00:31
有人知道我可以为此做些什么吗?
from pytz import timezone
import dateutil.parser
from pytz import UTC
import datetime as dt
df3['Day']=pd.to_datetime(df['Date'], format='%Y-%m-%d %H:%M: %S.%f',errors='coerce').dt.tz_localize('UTC')
df3['Day']= df3['Day'].dt.tz_convert('US/Eastern')
df3['Date(New)'], df3['Time(New)'] = zip(*[(d.date(), d.time()) for d in df3['Day']])
【问题讨论】:
-
为什么您认为您的时间是“以 24 小时格式存储的”?它存储为 datetime.time ...这只是一个显示问题
标签: python pandas datetime time