在 Python 中,date_range 并不是一个内置的标准函数或模块,你可以使用 pandas 库中的 pd.date_range() 函数来生成一个日期范围,如果你只是想处理日期范围而不需要 pandas,你也可以使用标准库 datetime 来实现类似的功能。
下面我将分别介绍这两种方法:
使用 pandas 库
pandas 是一个非常流行的数据处理库,它提供了 date_range 函数来生成日期范围。
安装 pandas
如果你还没有安装 pandas,可以通过以下命令安装:
pip install pandas
示例代码
import pandas as pd # 生成从 2026-01-01 到 2026-01-10 的日期范围 date_range = pd.date_range(start='2026-01-01', end='2026-01-10') print(date_range)
输出结果:
DatetimeIndex(['2026-01-01', '2026-01-02', '2026-01-03', '2026-01-04',
'2026-01-05', '2026-01-06', '2026-01-07', '2026-01-08',
'2026-01-09', '2026-01-10'],
dtype='datetime64[ns]', freq='D')
自定义频率
你可以通过 freq 参数自定义日期范围的频率,例如每周、每月等:
# 生成从 2026-01-01 开始,每周一的日期范围,共 5 周 date_range_weekly = pd.date_range(start='2026-01-01', periods=5, freq='W') print(date_range_weekly)
输出结果:
DatetimeIndex(['2026-01-01', '2026-01-08', '2026-01-15', '2026-01-22', '2026-01-29'], dtype='datetime64[ns]', freq='W-SUN')
使用标准库 datetime
如果你不想依赖 pandas,可以使用 Python 标准库 datetime 来手动生成日期范围。
示例代码
from datetime import datetime, timedelta
def generate_date_range(start_date, end_date, step=1):
"""
生成从 start_date 到 end_date 的日期范围。
:param start_date: 起始日期,格式为 'YYYY-MM-DD'
:param end_date: 结束日期,格式为 'YYYY-MM-DD'
:param step: 步长,默认为 1 天
:return: 日期列表
"""
start = datetime.strptime(start_date, '%Y-%m-%d')
end = datetime.strptime(end_date, '%Y-%m-%d')
date_list = []
current_date = start
while current_da
te <= end:
date_list.append(current_date.strftime('%Y-%m-%d'))
current_date += timedelta(days=step)
return date_list
# 生成从 2026-01-01 到 2026-01-10 的日期范围
date_range = generate_date_range('2026-01-01', '2026-01-10')
print(date_range)
输出结果:
['2026-01-01', '2026-01-02', '2026-01-03', '2026-01-04', '2026-01-05', '2026-01-06', '2026-01-07', '2026-01-08', '2026-01-09', '2026-01-10']
- 如果你需要处理复杂的数据分析任务,建议使用
pandas的date_range函数,因为它功能强大且灵活。 - 如果你只需要简单的日期范围生成,并且不想引入额外的依赖,可以使用
datetime库手动实现。
根据你的具体需求选择合适的方法即可!
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/476532.html



