前言
关于Pandas处理时间序列数据我已经有写过两篇处理文章了:
一文速学-Pandas中DataFrame转换为时间格式数据与处理
一文速学-Pandas处理时间序列数据操作详解
日常处理一些数据和业务上需求,其实还是十分常用到时序数据的,一些处理方法我感觉都是比较麻烦的,还存在很多方法没有详细说明。于是基于两篇内容之上,再对Pandas的处理时间数据进行深入功能挖掘,一些很好用的方法和处理这两篇文章还是没有覆盖到的。作为查漏补缺这个系列的文章将会把pandas处理时间序列数据的内容都给将完全。
Pandas数据分析系列专栏已经更新了很久了,基本覆盖到使用pandas处理日常业务以及常规的数据分析方方面面的问题。从基础的数据结构逐步入门到处理各类数据以及专业的pandas常用函数讲解都花费了大量时间和心思创作,如果大家有需要从事数据分析或者大数据开发的朋友推荐订阅专栏,将在第一时间学习到Pandas数据分析最实用常用的知识。此篇博客篇幅较长,涉及到数据可视化等各类操作,值得细读实践一番,我会将Pandas的精华部分挑出细讲实践。博主会长期维护博文,有错误或者疑惑可以在评论区指出,感谢大家的支持。
时间/日期范围取值操作
该方法的使用场景和SQL里面的将时间数据进行取时间和日期操作类型,其实Pandas很多功能和SQL里面的函数功能是十分类似的。在SQL:Hive时间日期函数一文详解+代码实例中是:
select year(current_date());
其中对应pandas的操作,需要在时序series后面加个dt再.year就可实现:
df_time.times.dt.year
总可选参数有:
我们拿该列作为效果演示集合。
参数 | 说明 |
year | 取年份,2022 |
month | 取月份,11 |
day | 取天数,14 |
hour | 取小时,0~23 |
minute | 取分钟,0~59 |
second | 取秒数,0~59 |
microsecond | 取微秒 |
nanosecond | 取纳秒 |
date | 取日期,2022-11-14 |
time | 取时间,00:00:00~23:59:59 |
timetz | 返回datetime.time作为带有时区信息的本地时间00:00:00~23:59:59 |
dayofyear | 此年的第几天,第318天,318 |
day_of_year | 和上述一样,加了_而已 |
weekofyear | 此年的1第几周,第46周,46 |
week | 和上述一样 |
dayofweek | 星期一=0,星期日=6,今日的星期数 |
day_of_week | 和上述一样 |
weekday | 和上述一样 |
quarter | 日期的季度:1月-3月=1,4月-6月=2日。 |
days_in_month | datetime所在月份的天数,比如11月30天那就是30 |
is_month_start | 逻辑指示是否为每月的第一天(由频率定义),不是11月1号就是False |
is_month_end | 逻辑指示是否为每月的最后一天(由频率定义),不是11月30号就是False |
is_quarter_start | 逻辑指示季度的第一天(由频率定义),不是10月1号就是False |
is_quarter_end | 逻辑指示季度的最后一天(由频率定义),不是12月30号就是False |
is_year_start | 逻辑指示一年中的第一天(由频率定义) |
is_year_end | 逻辑指示是否为一年中的最后一天(由频率定义) |
is_leap_year | 逻辑指示日期是否属于闰年 |
这里展示几个例子:
df_time.times.dt.is_month_start
df_time.times.dt.hour
df_time.times.dt.quarter
此时的数据类型会变化需要注意.
点关注,防走丢,如有纰漏之处,请留言指教,非常感谢
以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见