一文速学-Pandas处理时间序列数据-时间/日期操作详解


前言

关于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 ,有问题大家随时留言讨论 ,我们下期见

猜你喜欢

转载自blog.csdn.net/master_hunter/article/details/128478424