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根据出生年份简单计算生肖的方法
Mar 27 Python
Python实现新浪博客备份的方法
Apr 27 Python
Pycharm学习教程(4) Python解释器的相关配置
May 03 Python
numpy数组拼接简单示例
Dec 15 Python
python实现人脸识别经典算法(一) 特征脸法
Mar 13 Python
Python 把序列转换为元组的函数tuple方法
Jun 27 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
Aug 05 Python
pycharm 更改创建文件默认路径的操作
Feb 15 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
Jun 18 Python
python单元测试框架pytest的使用示例
Oct 07 Python
python 实现socket服务端并发的四种方式
Dec 14 Python
Django用内置方法实现简单搜索功能的方法
Dec 18 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
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
php中通过curl smtp发送邮件
2012/06/05 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
css图片自适应大小
2007/11/28 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
javascript的BOM汇总
2015/07/16 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
layui实现数据表格table分页功能(ajax异步)
2019/07/27 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
Nest.js散列与加密实例详解
2021/02/24 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
python实现ping的方法
2015/07/06 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
Python中一些深不见底的“坑”
2019/06/12 Python
通过cmd进入python的实例操作
2019/06/26 Python
python创建文本文件的简单方法
2020/08/30 Python
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
荷兰街头时尚之家:Funkie House
2019/03/18 全球购物
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
市场拓展计划书
2014/05/03 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
考试作弊检讨书范文
2015/01/27 职场文书
故宫英文导游词
2015/01/31 职场文书
三行辞职书范文
2015/02/26 职场文书
周一问候语大全
2015/11/10 职场文书