【问题标题】:Trying to Create a List with Dates and Times in Python without Time Stamps尝试在没有时间戳的 Python 中创建包含日期和时间的列表
【发布时间】:2018-09-01 01:34:35
【问题描述】:

我正在尝试使用 Astropy 来确定日期/时间的坐标。我想创建一个包含按小时增加的日期和时间的列表。例如:

[2018-01-01 00:00:00,2018-01-01 01:00:00,2018-01-01 02:00:00]

但是,我需要将日期从 2018 年 1 月 1 日到 2019 年 8 月 31 日,并包括 0 到 24 小时,即:

[2018-01-01 00:00:00,2018-01-01 01:00:00,2018-01-01 02:00:00,....2018-01-01 
23:00:00,2018-01-02 00:00:00,2018-01-02 01:00:00,2018-01-02 02:00:00,....
2018-01-02 23:00:00,...]

这是我到目前为止的代码:

import pandas as pd 
import numpy as np

dates=[]
for i in np.arange(0,24):
    d=pd.date_range('2018-01-01', periods=243) + pd.Timedelta(hours=i)
    dates.append(d)


tim=[]
for j,k in zip(np.arange(0,24),np.arange(0,243)):
    t=dates[j][k]
    tim.append(t)

print(tim)

返回:

[Timestamp('2018-01-01 00:00:00', freq='D'), Timestamp('2018-01-02 01:00:00', 
freq='D'), Timestamp('2018-01-03 02:00:00', freq='D'), Timestamp('2018-01-04 
03:00:00', freq='D'), Timestamp('2018-01-05 04:00:00', freq='D'), 
Timestamp('2018-01-06 05:00:00', freq='D'), Timestamp('2018-01-07 06:00:00', 
freq='D'), Timestamp('2018-01-08 07:00:00', freq='D'), Timestamp('2018-01-09 
08:00:00', freq='D'), Timestamp('2018-01-10 09:00:00', freq='D'), 
Timestamp('2018-01-11 10:00:00', freq='D'), Timestamp('2018-01-12 11:00:00', 
freq='D'), Timestamp('2018-01-13 12:00:00', freq='D'), Timestamp('2018-01-14 
13:00:00', freq='D'), Timestamp('2018-01-15 14:00:00', freq='D'), 
Timestamp('2018-01-16 15:00:00', freq='D'), Timestamp('2018-01-17 16:00:00', 
freq='D'), Timestamp('2018-01-18 17:00:00', freq='D'), Timestamp('2018-01-19 
18:00:00', freq='D'), Timestamp('2018-01-20 19:00:00', freq='D'), 
Timestamp('2018-01-21 20:00:00', freq='D'), Timestamp('2018-01-22 21:00:00', 
freq='D'), Timestamp('2018-01-23 22:00:00', freq='D'), Timestamp('2018-01-24 
23:00:00', freq='D')]

请帮忙!谢谢。

【问题讨论】:

    标签: python pandas date datetime time


    【解决方案1】:

    很简单:

    pd.date_range('2018-01-01', '2019-09-01', freq='H')
    

    【讨论】:

      【解决方案2】:

      要获得所需格式的列表,您可以使用:

      [str(ts) for ts in pd.date_range('2018-01-01', '2019-08-31', freq='H')]
      

      【讨论】:

        猜你喜欢
        • 2018-04-12
        • 1970-01-01
        • 1970-01-01
        • 2021-01-14
        • 2015-02-26
        • 2022-12-10
        • 1970-01-01
        • 1970-01-01
        • 2022-08-22
        相关资源
        最近更新 更多