博客
关于我
pandas的时间日期高效操作
阅读量:140 次
发布时间:2019-02-26

本文共 1199 字,大约阅读时间需要 3 分钟。

转载至:https://www.jianshu.com/p/93734eeed9b3

29、pandas的时间日期高效操作

探索数据之美

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

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

比如现在有一组数据:

源数据

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

导出之后的日期格式

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

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

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

dt.strftme()

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

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

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

. 不要中间的‘-’
中间用斜线
将年份放后面
只显示月份和天数
还有设置格式更简洁的方式:

dt.date只提取日期部分

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

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

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

dt.year能直接提取出年份

其它信息和年份差不多:

月份

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

返回星期时间

返回周数是df.week()。

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

timedelta函数

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

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

.dt.total_seconds()

三、计算天数相关的函数

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

计算是一年当中的第几天

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

计算一年当中的第几周

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

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

你可能感兴趣的文章
nginx配置全解
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置后台网关映射路径
查看>>
nginx配置域名和ip同时访问、开放多端口
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Nginx配置负载均衡到后台网关集群
查看>>
ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
查看>>
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>