python - 将 Pandas 时间对象转换为字符串
问题描述
dates
我有一个包含 DateTimeIndex的列表。
[DatetimeIndex(['2016-01-16 22:00:00', '2016-01-16 22:15:00',
'2016-01-16 22:30:00', '2016-01-16 22:45:00',
'2016-01-16 23:00:00', '2016-01-16 23:15:00',
'2016-01-16 23:30:00', '2016-01-16 23:45:00',
'2016-01-17 00:00:00'],
dtype='datetime64[ns]', freq=None)
...
DatetimeIndex(['2016-01-23 21:30:00', '2016-01-23 21:45:00',
'2016-01-23 22:00:00', '2016-01-23 22:15:00',
'2016-01-23 22:30:00', '2016-01-23 22:45:00',
'2016-01-23 23:00:00', '2016-01-23 23:15:00',
'2016-01-23 23:30:00'],
我想将此列表转换为如下所示:
[DatetimeIndex(['Saturday 22:00:00', 'Saturday 22:15:00',
'Saturday 22:30:00', 'Saturday 22:45:00',
'Saturday 23:00:00', 'Saturday 23:15:00',
等等。格式必须是字符串,我喜欢保留列表。我尝试了以下但没有返回我想要的
[list(zip(i.day_name(), i.time)) for i in dates]
[[('Saturday', datetime.time(22, 0)),
('Saturday', datetime.time(22, 15)),
('Saturday', datetime.time(22, 30)),
('Saturday', datetime.time(22, 45)),
('Saturday', datetime.time(23, 0)),
('Saturday', datetime.time(23, 15)),
('Saturday', datetime.time(23, 30)),
('Saturday', datetime.time(23, 45)),
('Sunday', datetime.time(0, 0))],
但是,当我尝试转换i.time
为字符串时,会出现以下错误:
AttributeError: 'numpy.ndarray' object has no attribute 'apply'
有没有人可以帮助我?将不胜感激,谢谢!
解决方案
DatetimeIndex.strftime
with用于%A
带有HH:MM:SS
时间的日期名称:
dates = pd.DatetimeIndex(['2016-01-16 22:00:00', '2016-01-16 22:15:00',
'2016-01-16 22:30:00', '2016-01-16 22:45:00',
'2016-01-16 23:00:00', '2016-01-16 23:15:00',
'2016-01-16 23:30:00', '2016-01-16 23:45:00',
'2016-01-17 00:00:00'])
out = [i.strftime('%A %H:%M:%S') for i in dates]
print (out)
['Saturday 22:00:00', 'Saturday 22:15:00', 'Saturday 22:30:00',
'Saturday 22:45:00', 'Saturday 23:00:00', 'Saturday 23:15:00',
'Saturday 23:30:00', 'Saturday 23:45:00', 'Sunday 00:00:00']