📅  最后修改于: 2023-12-03 15:07:46.399000             🧑  作者: Mango
在 Python 中,我们可以使用 datetime
模块来创建日期、时间、时间戳等各种时间类型,并且可以进行各种时间计算和格式化操作。
要创建一个日期值数组,我们可以使用 datetime.timedelta
类来代表时间间隔,然后通过循环来生成日期:
from datetime import date, timedelta
start_date = date(2022, 1, 1)
end_date = date(2022, 1, 31)
delta = timedelta(days=1)
dates = []
while start_date <= end_date:
dates.append(start_date)
start_date += delta
print(dates)
输出:
[datetime.date(2022, 1, 1), datetime.date(2022, 1, 2), datetime.date(2022, 1, 3), ...]
在上面的代码中,我们首先定义了开始日期和结束日期,然后定义了一个时间间隔 delta
,接着定义了一个空数组 dates
,然后通过循环来逐个生成日期并添加到数组中。
另外,我们还可以使用 NumPy 中的 numpy.datetime64
类来创建日期值数组。与 date
类不同的是,datetime64
可以表示更为精确的时间,包括秒、毫秒、微秒、纳秒等级别的时间。
import numpy as np
start_date = np.datetime64('2022-01-01')
end_date = np.datetime64('2022-01-31')
dates = np.arange(start_date, end_date, np.timedelta64(1, 'D'))
print(dates)
输出:
['2022-01-01' '2022-01-02' '2022-01-03' ...]
在上面的代码中,我们首先定义了开始日期和结束日期,并使用 np.datetime64
函数将日期字符串转换为 datetime64
类型。接着使用 np.arange
函数生成时间间隔为一天的日期序列,并将其存储在 dates
变量中。
除了 NumPy,还可以使用 Pandas 中的 pd.date_range
函数来创建日期值数组。这个函数可以非常灵活地生成不同时间间隔的日期序列,并且可以进行滚动、偏移等等操作。
import pandas as pd
start_date = '2022-01-01'
end_date = '2022-01-31'
dates = pd.date_range(start=start_date, end=end_date, freq='D')
print(dates)
输出:
DatetimeIndex(['2022-01-01', '2022-01-02', '2022-01-03', ...], dtype='datetime64[ns]', length=31, freq='D')
在上面的代码中,我们直接使用了字符串类型的日期,并使用 pd.date_range
函数生成时间间隔为一天的日期序列,并将其存储在 dates
变量中。
以上就是在 Python 中创建日期值数组的三种方式。无论是使用 datetime
、NumPy 还是 Pandas,它们都可以轻松创建出任意时间间隔的日期序列,并进行各种时间计算和格式化操作。