pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)

关于描述:在项目中遇到了特征的提取,因为数据的变化和时间有直接的关系,就考虑这个时间能提取出那些特征?

我的数据示例:200101010100。年月日时分秒的这个里面提取数据,我很明显可以看出来需要尝试提取:日时分特征

参考:https://www.jianshu.com/p/93734eeed9b3

获取每周几的时间参考:https://blog.csdn.net/qq_36076233/article/details/66969108

                                       https://www.jb51.net/article/138072.htm

在前面的文章中,我们总结了一下关于时间日期的简单计算,但是我们发现很多功能都是datetime库提供的,那么pandas有没有提供跟日期时间有关的函数呢?

自然是有的就是.dt,跟.str一样,后面可以加多个函数进行操作。

比如现在有一组数据:

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第1张图片

源数据

由于日期列都是datetime64格式的,当导出到excel或者别的地方的时候就会出现格式不是我们想要的:

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第2张图片

导出之后的日期格式

这种在导出后还要再次进行格式的调整,将会变得很麻烦。

所以我们要看一下有没有其它的方式导出之后就直接是标准的日期格式的。

一、日期格式设置:dt.strftme()

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第3张图片

dt.strftme()

需要注意的是在经过.dt.strftime()处理后的数据就不再是datetime类型了,就算导出到excel也是不能直接被识别为日期的,所以处理的时候要慎重。

当然,还可以处理成其它的格式:

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第4张图片

小写的y,年份就只有两位

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第5张图片

. 不要中间的‘-’

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第6张图片

中间用斜线

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第7张图片

将年份放后面

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第8张图片

只显示月份和天数

还有设置格式更简洁的方式:

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第9张图片

dt.date只提取日期部分

只要记住大写Y和小写y区别,其它的就都比较简单了。dt.strftime()与Datetime库里的格式设置不一样,这一点要注意区别。

二、 提取时间日期中的 部分信息:

dt.year能直接提取出年份,而且是整数型:

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第10张图片

dt.year能直接提取出年份

其它信息和年份差不多:

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第11张图片

月份

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第12张图片

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第13张图片

小时

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第14张图片

时间

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第15张图片

季度

还可以返回星期几:(星期一是0,星期天是6,跟切片的时候很相似。)

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第16张图片

返回星期时间

返回周数是df.week()。

这就联想到前面的文章提到的timedelta类型提取日期,那这个dt能不能用在timedelta类型的数据上呢?

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第17张图片

timedelta函数

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第18张图片

使用.dt.days去掉days

由上图可知以这样的一直方式比匿名函数更加的方便,这里的.days很类似datetime库里面的.days。相当于用.dt.days代替了之前的map(lambda x:x.days)。

按照这个逻辑,.dt.total_seconds()也是可以使用的:

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第19张图片

.dt.total_seconds()

 

三、计算天数相关的函数

计算是一年当中的第几天:

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第20张图片

计算是一年当中的第几天

同理计算一年当中的第几周(.dt.weekofyear):

pandas中时间序列的处理(获得时间特征:年月日周分秒等时间)_第21张图片

计算一年当中的第几周

除了上面这些,还有.dt后面还可以接很多函数,实在太多,就不一一介绍了。

需要注意的是用split出来后的是obj格式,应该先使用datetime.strptime转为时间格式之后才能进行dt.strftime处理。


 

你可能感兴趣的:(机器学习/深度学习,Pandas/Numpy)