Python数据分析库pandas高级接口dt的使用详解
series对象和dataframe的列数据提供了cat、dt、str三种属性接口(accessors),分别对应分类数据、日期时间数据和字符串数据,通过这几个接口可以快速实现特定的功能,非常快捷。
今天翻阅pandas官方文档总结了以下几个常用的api。
1.dt.date 和 dt.normalize(),他们都返回一个日期的 日期部分,即只包含年月日。但不同的是date返回的series是object类型的,normalize()返回的series是datetime64类型的。
这里先简单创建一个dataframe。
2.dt.year、dt.month、dt.day、dt.hour、dt.minute、dt.second、dt.week (dt.weekofyear和dt.week一样)分别返回日期的年、月、日、小时、分、秒及一年中的第几周
3.dt.weekday(dt.dayofweek一样)返回一周中的星期几,0代表星期一,6代表星期天,dt.weekday_name返回星期几的英文。
4.dt.dayofyear 返回一年的第几天,dt.quarter得到每个日期分别是第几个季度。
5.dt.is_month_start和dt.is_month_end 判断日期是否是每月的第一天或最后一天,可以将month换成year和quarter相应的判断日期是否是每年或季度的第一天或最后一天.
6.dt.is_leap_year 判断是否是闰年
7.dt.month_name() 返回月份的英文名称.
补充知识: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())
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。