【问题标题】:Generate minutely time range in python在python中生成分钟时间范围
【发布时间】:2019-02-20 07:13:11
【问题描述】:

目前我正在使用以下代码生成每小时时间

import pandas as pd
times=[pd.to_datetime(i) for i in '09:14:00','10:15:00','11:15:00','12:15:00','13:15:00','14:15:00','15:15:00', '15:30:00']

我需要像'09:14:00','09:15:00'这样的分钟时间

有没有办法在没有像上面那样硬编码hh:mm:ss 的情况下获得分钟时间。 我试过pd.date_range("09:14:00", "15:31:00", freq="1min").time 但是输出的类型与我预期的不同

In [100]: pd.date_range("09:14:00", "09:15:00", freq="1min").time
Out[100]: array([datetime.time(9, 14), datetime.time(9, 15)], dtype=object)
#expected type
In [99]: pd.to_datetime("09:14:00")
Out[99]: Timestamp('2019-02-20 09:14:00')

【问题讨论】:

    标签: python pandas time


    【解决方案1】:

    我认为你需要的是timedeltas,因为Timestamp没有日期,只有时间,不存在:

    r1 = pd.timedelta_range("09:14:00", "09:20:00", freq="1min")
    print (r1)
    TimedeltaIndex(['09:14:00', '09:15:00', '09:16:00', '09:17:00', '09:18:00',
                    '09:19:00', '09:20:00'],
                   dtype='timedelta64[ns]', freq='T')
    

    只能在strings 中生成times:

    r2 = pd.date_range("09:14:00", "09:20:00", freq="1min").strftime('%H:%M:%S').tolist()
    print (r2)
    ['09:14:00', '09:15:00', '09:16:00', '09:17:00', '09:18:00', '09:19:00', '09:20:00']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多