pandas 对日期类型数据的处理方法详解


Posted in Python onAugust 08, 2019

pandas 的日期/时间类型有如下几种:

Concept Scalar Class Array Class pandas Data Type Primary Creation Method
Date times Timestamp DatetimeIndex datetime64[ns] or datetime64[ns, tz] to_datetime or date_range
Time deltas Timedelta TimedeltaIndex timedelta64[ns] to_timedelta or timedelta_range
Time spans Period PeriodIndex period[freq] Period or period_range
Date offsets DateOffset None None DateOffset

本文介绍在处理时点数 (point in time) 一些常用的处理方法,仍然以上一篇的示例数据为例进行讲解。pandas 用 Timestamp 表示时点数,在大多数情况下和 python 的 datetime 类型的使用方法是通用的。

首先获取数据,并且将 DataFrame 的 date 列转换成 datetime 类型:

df1 = pd.read_csv('https://raw.githubusercontent.com/stonewm/python-practice-projects/master/pandas%20sample%20data/sample-salesv3.csv')
df1['date'] = pd.to_datetime(df1['date']) # convert date column to datetime
df1.head()

pandas 对日期类型数据的处理方法详解

也可以在 read_csv() 方法中,通过 parse_dates 参数直接将某些列转换成 datetime64 类型:

df1 = pd.read_csv('sample-salesv3.csv', parse_dates=['date'])

我们据此销售数据,按月份、按季度统计 sku 的销售金额。
pandas 的 pandas.Series.dt 可以获得日期/时间类型的相关信息。比如

df1['date'].dt.year
df1['date'].dt.month
df1['date'].dt.quarter

但这些类型返回值为 int 类型,作为统计的字段,我们更希望是 2014-04 这样的格式,有两个方法:

# 方法 1
df1['year_month'] = df1['date'].apply(lambda x : x.strftime('%Y-%m'))

pandas 对日期类型数据的处理方法详解

第二种方法:

df1['period'] = df1['date'].dt.to_period('M')

pandas 对日期类型数据的处理方法详解

第二种方法使用起来更加简单,参数 M 表示月份,Q 表示季度,A 表示年度,D 表示按天,这几个参数比较常用。
新增了一列之后,做出数据透视表:

import numpy as np
pivot = pd.pivot_table(df1, index=['sku'], columns=['period'], values=['ext price'], aggfunc=np.sum)
pivot.head()

pandas 对日期类型数据的处理方法详解

再做一个按季度统计的数据透视表:

df1['quarter'] = df1['date'].dt.to_period('Q')
quarter_pivot = pd.pivot_table(df1, index=['sku'], columns=['quarter'], values=['ext price'], aggfunc=np.sum)

pandas 对日期类型数据的处理方法详解

参考

Time Series / Date functionality

Extracting just Month and Year from Pandas Datetime column

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现自动添加脚本头信息的示例代码
Sep 02 Python
Python中的日期时间处理详解
Nov 17 Python
python导入时小括号大作用
Jan 10 Python
超简单使用Python换脸实例
Mar 27 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
numpy.linalg.eig() 计算矩阵特征向量方式
Nov 29 Python
Python手绘可视化工具cutecharts使用实例
Dec 05 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
Dec 11 Python
使用pickle存储数据dump 和 load实例讲解
Dec 30 Python
PyQt5 如何让界面和逻辑分离的方法
Mar 24 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
May 12 Python
对Pytorch 中的contiguous理解说明
Mar 03 Python
解决Python设置函数调用超时,进程卡住的问题
Aug 08 #Python
Python 根据日志级别打印不同颜色的日志的方法示例
Aug 08 #Python
Python学习笔记之错误和异常及访问错误消息详解
Aug 08 #Python
Python实现直方图均衡基本原理解析
Aug 08 #Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 #Python
Python 调用 Outlook 发送邮件过程解析
Aug 08 #Python
python判断自身是否正在运行的方法
Aug 08 #Python
You might like
使用无限生命期Session的方法
2006/10/09 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
symfony表单与页面实现技巧
2015/01/26 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
深入理解Javascript闭包 新手版
2010/12/28 Javascript
javascript自启动函数的问题探讨
2013/10/05 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
$("").click与onclick的区别示例介绍
2014/09/25 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
Python中的ctime()方法使用教程
2015/05/22 Python
启动targetcli时遇到错误解决办法
2017/10/26 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
详解python中groupby函数通俗易懂
2020/05/14 Python
如何基于python把文字图片写入word文档
2020/07/31 Python
如何用Python 加密文件
2020/09/10 Python
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
银行实习的自我鉴定
2013/12/10 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
教师聘用意向书
2015/05/11 职场文书
硕士论文致谢范文
2015/05/14 职场文书
房屋所有权证明
2015/06/19 职场文书
PostgreSQL存储过程实用脚本(二):创建函数入门
2021/04/05 PostgreSQL
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS