一文带你搞懂pandas中的时间处理(详细)
目录
1、pandas中6个时间相关的类
2、Timestamp类
1)查看时间列,是str字符串列,还是时间格式列
2)使用pd.to_datetime()将字符串,转换为日期格式
3)Timestamp类只能表示1677年-2262年的时间
4)Timestamp类常用属性
3、DatetimeIndex与PeriodIndex函数:类似于to_datetime()函数
4、Timedelta类
1)日期前移、后移一天
2)两个时间做差
1、pandas中6个时间相关的类
在多数情况下,对时间类型数据进行分析的前提就是将原本为字符串的时间转换为标准时间类型。
pandas继承了NumPy库和datetime库的时间相关模块,提供了6种时间相关的类。
2、Timestamp类
- 其中Timestamp作为时间类中最基础的,也是最为常用的。在多数情况下,时间相关的字符串都会转换成为Timestamp。pandas提供了to_datetime()函数,能够实现这一目标。
- 值得注意的是,Timestamp类型时间是有限制的。
1)查看时间列,是str字符串列,还是时间格式列
import pandas as pddf = pd.read_csv(r"E:\电脑视频录制软件\视频下载安装路径\Python数据分析与应用人邮版\data\meal_order_info.csv",engine="python",encoding="gbk")
df['lock_time'].head()
type(df['lock_time'][0])
pd.to_datetime(df['lock_time']).head()
结果如下:
2)使用pd.to_datetime()将字符串,转换为日期格式
import pandas as pddf = pd.read_csv(r"E:\电脑视频录制软件\视频下载安装路径\Python数据分析与应用人邮版\data\meal_order_info.csv",engine="python",encoding="gbk")
df['lock_time'] = pd.to_datetime(df['lock_time'])
df['lock_time'].head()
结果如下:
3)Timestamp类只能表示1677年-2262年的时间
pd.Timestamp.min
pd.Timestamp.max
结果如下:
4)Timestamp类常用属性
- 在多数涉及时间相关的数据处理,统计分析的过程中,需要提取时间中的年份,月份等数据。使用对应的Timestamp类属性就能够实现这一目的。
- 结合Python列表推导式,可以实现对DataFrame某一列时间信息数据的提取。
操作如下:
import pandas as pddf = pd.read_csv(r"E:\电脑视频录制软件\视频下载安装路径\Python数据分析与应用人邮版\data\meal_order_info.csv",engine="python",encoding="gbk")
df['lock_time'] = pd.to_datetime(df['lock_time'])
df["年"] = df['lock_time'].apply(lambda x:x.year)
df["年"].head()
结果如下:
5)利用strftime()方法提取指定格式日期
df[‘lock_time’][0]
df[‘lock_time’][0].strftime("%Y-%m")
结果如下:
3、DatetimeIndex与PeriodIndex函数:类似于to_datetime()函数
- 除了将数据字原始DataFrame中直接转换为Timestamp格式外,还可以将数据单独提取出来将其转换为DatetimeIndex或者PeriodIndex。
- 转换为PeriodIndex的时候需要注意,必须通过freq参数指定时间间隔,常用的时间间隔有Y为年,M为月,D为日,H为小时,T为分钟,S为秒。两个函数可以用来转换数据还可以用来创建时间序列数据,其参数非常类似。
import pandas as pddf = pd.read_csv(r"E:\电脑视频录制软件\视频下载安装路径\Python数据分析与应用人邮版\data\meal_order_info.csv",engine="python",encoding="gbk")
df['lock_time'] = pd.DatetimeIndex(df['lock_time'])
df['lock_time'][0]
---------------------------------------------------------------
df = pd.read_csv(r"E:\电脑视频录制软件\视频下载安装路径\Python数据分析与应用人邮版\data\meal_order_info.csv",engine="python",encoding="gbk")
df['lock_time'] = pd.PeriodIndex(df['lock_time'],freq="S")
df['lock_time'][0]
结果如下:
4、Timedelta类
- Timedelta是时间相关的类中的一个异类,不仅能够使用正数,还能够使用负数表示单位时间,例如1秒,2分钟,3小时等。使用Timedelta类,配合常规的时间相关类能够轻松实现时间的算术运算。目前Timedelta函数中时间周期中没有年和月。
1)日期前移、后移一天
import pandas as pddf = pd.read_csv(r"E:\电脑视频录制软件\视频下载安装路径\Python数据分析与应用人邮版\data\meal_order_info.csv",engine="python",encoding="gbk")
df['lock_time'] = pd.to_datetime(df['lock_time'])
df['lock_time'][0]
# 后移一天
df['lock_time'][0] + pd.Timedelta(days=1)
# 前移一天
df['lock_time'][0] + pd.Timedelta(days=-1)
结果如下:
2)两个时间做差
- 使用Timedelta,可以很轻松地实现在某个时间上加减一段时间。除了使用Timedelta实现时间的平移外,还能够直接对两个时间序列进行相减,从而得出一个Timedelta。
df['lock_time'][0]
pd.to_datetime("2020-3-13") - df['lock_time'][0]a = pd.to_datetime("2020-3-13") - df['lock_time'][0]
a.days
结果如下:
综上所述:上述的6个方法,只要将str转换为日期格式后,都可以统一使用如下的【Timestamp类的常用属性】,进行提取年、提取月 等操作。
一文带你搞懂pandas中的时间处理(详细)相关推荐
- 一文带你搞懂 MySQL 中的分区!
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | GrimMjx 来源 | https://ww ...
- 一文带你搞懂vue中的this.$nextTick
文章目录 1.Vue.nextTick(callback) 使用原理 2.created和mounted对比 3.例子说明 4.实际遇到的问题:vue项目中 elementUI 中表格多选框默认选中, ...
- php算法抽荣耀水晶,还在抱怨王者荣耀水晶难抽?PHP一文带你搞懂游戏中的抽奖算法...
前言: 没有特别幸运,那么请先特别努力,别因为懒惰而失败,还矫情地将原因归于自己倒霉.你必须特别努力,才能显得毫不费力. 希望:所以说,树倒了,没有一片雪花是无辜的,抽奖都是假的,只有人家想让你中和不 ...
- 一文带你搞懂从动态代理实现到Spring AOP
摘要:本文主要讲了Spring Aop动态代理实现的两种方式. 1. Spring AOP Spring是一个轻型容器,Spring整个系列的最最核心的概念当属IoC.AOP.可见AOP是Spring ...
- 一文带你搞懂C#多线程的5种写法
一文带你搞懂C#多线程的5种写法 1.简介 超长警告! 在学习本篇文章前你需要学习的相关知识: 线程基本知识 此篇文章简单总结了C#中主要的多线程实现方法,包括: Thread 线程 ThreadPo ...
- RPC框架:一文带你搞懂RPC
RPC是什么(GPT答) ChatGPT回答: RPC(Remote Procedure Call)是一种分布式应用程序的编程模型,允许程序在不同的计算机上运行.它以一种透明的方式,将一个程序的函数调 ...
- 如何查询你电脑的IP地址?一文带你搞懂IP地址
上一章介绍了数据链路层--以太网数据帧的报文格式(你知道以太网数据帧在网络中如何发送和接收的吗?一文带你搞懂它),本章介绍下网络层--IP地址. 大家都知道计算机都会有一个IP地址,只有配置了IP地址 ...
- RPC框架:从原理到选型,一文带你搞懂RPC
大家好,我是华仔,RPC系列的文章是我去年写的,当时写的比较散,现在重新进行整理.对于想学习RPC框架的同学,通过这篇文章,让你知其然并知其所以然,便于以后技术选型,下面是文章内容目录: RPC 什么 ...
- ipv6单播地址包括哪两种类型_IPV6中为啥没有ARP了呢?一文带你搞懂NDP邻居发现协议...
前言 前面我们介绍了ICMPv6协议 除了提供ICMPv4常用的基本功能之外,还有邻居发现(ND)的功能.一文带你看懂ICMPv6和ICMPv4的区别 那么究竟什么是邻居发现协议(ND)呢? 邻居发现 ...
- 一文带你搞懂什么是测试开发!
需要说明的是,原文发表于作者的公众号中,文章篇幅虽长,但内容朴实.且能帮助读者进一步理解测试开发工作,请读者耐心品完~ 01 开始前说点什么 1. 自我反省 公众号开通了也有两年多了,除了刚开通的那段 ...
最新文章
- 【设计模式】三大类:创建型模式、结构型模式、行为型模式
- 别把引擎当汽车:AutoML不值得……
- 夺命雷公狗---微信开发26----客服消息接口基础和推送视频
- 部署redis mysql_【服务器部署Redis、Mysql等】-解决方式
- 使用JaCoCo Maven插件为单元和集成测试创建代码覆盖率报告
- 周鸿祎:在360新员工入职培训上的讲话
- java stream foreach_Java 8 Lambda Stream forEach具有多个语句
- 电子科技大学研究生计算机与科学,2019年电子科技大学计算机科学与工程学院考研复试分数线...
- 话唠黄金机器人_用了接吻教学机器人以后......哈哈哈哈不能我一个人瞎!
- 自己动手写处理器之第一阶段(3)——MIPS32指令集架构简单介绍
- 时尚服装行业挑战及软件机遇分享 -- 许鹏
- 【SQL】使用SQL求1-100的质数
- 以贝叶斯思维看待世界
- 学生计算机游戏代码,给计算机学院的学幼们贴一些游戏代码
- 给PDF文档添加图片签名的简单方法
- linux如何更改mac地址
- 路由器开发整理(1)
- [Python从零到壹] 四十.图像处理基础篇之图像量化处理
- 明天就是七夕了,用Python做了个可能会被女朋友打死的礼物!
- mycat使用注意事项
热门文章
- 下载离线地图数据(支持谷歌、百度、高德等所有地图源)
- html字体倾斜45度,CSS3+JS 很酷的45度角斜射式照片墙效果
- 摄像头M-JPEG 格式分析
- Java:spring Value注解用法详解
- 如何将电脑(网线)网络共享给iPhone苹果手机(不需要数据线)
- 洛杉矶 夏威夷_夏威夷大学如何解决当今的高等教育问题
- no input file specified 三种解决方法
- 两个正态总体方差比的置信区间
- python打开csv文件、计算总成绩_python – 读取CSV文件,计算平均值并打印所述平均值...
- (CCF模拟)F1方程式冠军