Python pandas dt属性高级用法:日期提取、筛选与时间序列处理

远山来客
远山来客
发布时间:2026-10-14| 4人浏览过
原创

本文详解pandas中dt访问器的核心功能,涵盖日期部分提取、年月日时分秒获取、星期与季度判断、闰年检测及月份名称转换。结合str属性与apply函数,演示如何高效进行时间序列数据的筛选、比较与自定义处理,助力Python数据分析工作流。

pandas访问器概述

Series对象与DataFrame列数据均提供了cat、dt、str三种访问器(accessors),分别用于处理分类数据、日期时间数据和字符串数据。利用这些接口,开发者可以快速实现特定类型的数据转换与功能,显著提升处理效率。

本文基于pandas官方文档,梳理并总结了几个在实际开发中高频使用的API接口。

dt属性:日期提取与时间组件

首先介绍dt.date与dt.normalize()方法,两者均用于提取日期的日期部分(即仅保留年月日,去除时间信息)。主要区别在于返回的数据类型:dt.date返回的Series类型为object,而dt.normalize()返回的Series类型保持为datetime64,后者在后续时间运算中更具优势。

为便于演示,此处先构建一个基础的DataFrame示例数据。

其次,dt.year、dt.month、dt.day、dt.hour、dt.minute、dt.second以及dt.week(与dt.weekofyear等效)等属性,分别用于提取日期对应的年、月、日、小时、分钟、秒以及该日期在一年中所属的第几周。

dt属性:星期、季度与闰年判断

dt.weekday(等同于dt.dayofweek)用于返回星期几的整数表示,其中0代表星期一,6代表星期天。若需获取英文星期名称,可使用dt.weekday_name属性。

dt.dayofyear用于返回该日期在一年中的第几天,而dt.quarter则用于判断每个日期所属的季度编号。

dt.is_month_start与dt.is_month_end用于判断日期是否为当月第一天或最后一天。类似地,将month替换为year或quarter,即可判断日期是否为当年或当季的第一天或最后一天。

dt.is_leap_year属性用于检测日期所在的年份是否为闰年。

dt.month_name()方法用于返回月份对应的英文全称。

str与dt属性实战:字符串匹配与时间筛选

补充说明:pandas在处理字符串与时间序列数据时,分别依赖str与dt属性接口,二者各有侧重。

一、str属性详解

pandas中的Series对象具备str属性,通过该属性可调用一系列通用的字符串处理函数。

例如,执行df['road'].str.contains('康庄大道'),将返回包含子字符串'康庄大道'的行数据。

二、dt属性详解

针对时间序列数据的处理,pandas推荐使用dt属性。

例如,可以通过df['datetime'].dt.time > time(10,0)来比较时间部分。

当需要对两个Series进行逻辑与(and)比较时,应使用&运算符。

具体示例为:(df['datetime'].dt.time > time(10,0)) & (df['datetime'].dt.time < time(12,0))。

上述表达式将筛选出时间戳在10点到12点之间的所有数据记录。

apply函数处理时间序列

三、apply函数应用示例

若需更灵活地处理时间数据,可使用apply函数。例如:df['time'] = df['datetime'].apply(lambda x: x.time()),可将datetime列转换为纯时间对象并存储在新列中。

以上为个人经验总结,旨在为读者提供参考。如有疏漏或未尽之处,欢迎批评指正。

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

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 算法库。