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 Web框架Flask中使用百度云存储BCS实例
Feb 08 Python
python实现简单ftp客户端的方法
Jun 28 Python
Python列表和元组的定义与使用操作示例
Jul 26 Python
python导出hive数据表的schema实例代码
Jan 22 Python
Python使用requests发送POST请求实例代码
Jan 25 Python
django认证系统实现自定义权限管理的方法
Jul 16 Python
一行Python代码制作动态二维码的实现
Sep 09 Python
Python timer定时器两种常用方法解析
Jan 20 Python
基于django 的orm中非主键自增的实现方式
May 18 Python
Python通过文本和图片生成词云图
May 21 Python
python爬虫判断招聘信息是否存在的实例代码
Nov 20 Python
Python 循环读取数据内存不足的解决方案
May 25 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
AJAX for PHP简单表数据查询实例
2007/01/02 PHP
理解php原理的opcodes(操作码)
2010/10/26 PHP
PHP禁止个别IP访问网站
2013/10/30 PHP
php树型类实例
2014/12/05 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
extjs 为某个事件设置拦截器
2010/01/15 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
初识Node.js
2015/03/20 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
浅谈AngularJS中使用$resource(已更新)
2017/09/14 Javascript
JS实现的A*寻路算法详解
2018/12/14 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
javascript合并两个数组最简单的实现方法
2019/09/14 Javascript
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
基于python实现百度翻译功能
2019/05/09 Python
python实现倒计时小工具
2019/07/29 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
Python爬取12306车次信息代码详解
2020/08/12 Python
幼师求职信
2014/06/23 职场文书
经验交流材料格式
2014/12/30 职场文书
Python词云的正确实现方法实例
2021/05/08 Python