【问题标题】:Convert Pandas time object to string将 Pandas 时间对象转换为字符串
【发布时间】:2020-08-27 22:53:49
【问题描述】:

我有一个列表列表 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'

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

【问题讨论】:

    标签: python pandas list loops datetime


    【解决方案1】:

    DatetimeIndex.strftime%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']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      • 2016-12-12
      • 2014-12-13
      • 1970-01-01
      相关资源
      最近更新 更多