首页 > 解决方案 > 将 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'

有没有人可以帮助我?将不胜感激,谢谢!

标签: pythonpandaslistloopsdatetime

解决方案


DatetimeIndex.strftimewith用于%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']

推荐阅读