pandas 获取季度,月度,年度首尾日期的方法

陆遥
陆遥
发布时间:2026-10-13| 6人浏览过
原创

本文介绍利用 pandas 库实现类似 SQL 中 dateadd 和 datesub 功能的日期处理方法。通过 DateOffset 对象,可分别计算当月、当季及当年的第一天与最后一天,并演示如何获取昨日日期、星期几以及生成自定义频率的时间序列。

该方法能够实现类似于 SQL 中 dateadd 和 datesub 函数的日期加减功能。

这里介绍两种获取特定日期的方式。

z=datetime.datetime(2016,12,5)
z=datetime.datetime.strptime('20150112','%Y%m%d')

for x in ['01','02','03','04','05','06','07','08','09','10','11','12']:
 d='2015'+x+'12'
 z=datetime.datetime.strptime(d,'%Y%m%d')#当天
 z1=z+pd.tseries.offsets.DateOffset(days=1-z.day)#当月第一天
 z2=z+pd.tseries.offsets.DateOffset(months=1,days=-z.day)#当月最后一天
 x1 = z + pd.tseries.offsets.DateOffset(months=-((z.month - 1) % 3), days=1 - z.day) # 当季第一天
 x2 = z + pd.tseries.offsets.DateOffset(months=3 - ((z.month - 1) % 3), days=-z.day) # 当季最后一天
 y1 = z + pd.tseries.offsets.DateOffset(months=1 - z.month, days=1 - z.day) # 当年第一天
 y2 = z + pd.tseries.offsets.DateOffset(years=1,months=1 - z.month, days= - z.day) # 当年最后一天
 
print(d,':','月:',z1,z2,'季:',x1,x2)
print(y1.strftime("%Y-%m-%d"),y2.strftime("%Y-%m-%d"))

计算当月最后一天的逻辑为:当月第一天加上 1 个月再减去 1 天。

计算当季最后一天的逻辑为:当季第一天加上 3 个月再减去 1 天。

计算当年最后一天的逻辑为:当年第一天加上 1 年再减去 1 天。

获取今天前一天的代码如下:

datetime.datetime.now()+pd.tseries.offsets.DateOffset(days=-1)

获取今天是星期几的代码如下:

datetime.datetime.now().weekday()

生成指定频率的时间序列代码如下:

start = datetime.datetime.strptime('2018-01-01', '%Y-%m-%d')
end = datetime.datetime.strptime('2018-01-08', '%Y-%m-%d')
for x in pd.date_range(start,end,freq="3D"): #50min等
 print(x.strftime('%Y%m%d'))

以上关于 pandas 获取季度、月度及年度首尾日期的方法就是本文分享的全部内容,希望能对大家有所帮助,也欢迎继续支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。