Python数据分析库pandas高级接口dt的使用详解

(编辑:jimmy 日期: 2024/12/30 浏览:2)

Series对象和DataFrame的列数据提供了cat、dt、str三种属性接口(accessors),分别对应分类数据、日期时间数据和字符串数据,通过这几个接口可以快速实现特定的功能,非常快捷。

今天翻阅pandas官方文档总结了以下几个常用的api。

1.dt.date 和 dt.normalize(),他们都返回一个日期的 日期部分,即只包含年月日。但不同的是date返回的Series是object类型的,normalize()返回的Series是datetime64类型的。

这里先简单创建一个dataframe。

Python数据分析库pandas高级接口dt的使用详解

2.dt.year、dt.month、dt.day、dt.hour、dt.minute、dt.second、dt.week (dt.weekofyear和dt.week一样)分别返回日期的年、月、日、小时、分、秒及一年中的第几周

Python数据分析库pandas高级接口dt的使用详解

3.dt.weekday(dt.dayofweek一样)返回一周中的星期几,0代表星期一,6代表星期天,dt.weekday_name返回星期几的英文。

Python数据分析库pandas高级接口dt的使用详解

4.dt.dayofyear 返回一年的第几天,dt.quarter得到每个日期分别是第几个季度。

Python数据分析库pandas高级接口dt的使用详解

5.dt.is_month_start和dt.is_month_end 判断日期是否是每月的第一天或最后一天,可以将month换成year和quarter相应的判断日期是否是每年或季度的第一天或最后一天.

Python数据分析库pandas高级接口dt的使用详解

6.dt.is_leap_year 判断是否是闰年

Python数据分析库pandas高级接口dt的使用详解

7.dt.month_name() 返回月份的英文名称.

Python数据分析库pandas高级接口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 函数示例

df['time'] = df['datetime'].apply(lambda x: x.time())

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。