Python数据分析库pandas高级接口dt的使用详解
Series对象和DataFrame的列数据提供了cat、dt、str三种属性接口(accessors),分别对应分类数据、日期时间数据和字符串数据,通过这几个接口可以快速实现特定的功能,本文着重讨论日期时间数据,先看一个完整的案例:
import pandas as pd
import numpy as np# 产生一个时间序列,从2021-5-1 00:00:00 到 2021-5-10 00:02:00 频率是日
date = pd.date_range(start='2021-5-1 00:00:00',end='2021-5-10 00:02:00',freq='D')
df1 = pd.DataFrame({'日期':date})# 数字转星期 中文
def cnWeek(x):w = ['一','二','三','四','五','六','日']return w[x]# 数字转星期 英文
def enWeek(x):w=['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']return w[x]def call_cnWeek(f):return cnWeak(f.dayofweek)def call_enWeek(f):return enWeek(f.dayofweek)# 遍历这个列输出日期的不同格式
for e in df1['日期']:print(e,'{0}年{1}月{2}日{3}时{4}分{5}秒 {6} {7} 第{8}周 第{9}天 第{10}季度 '.format(e.year,'{0:0>2}'.format(e.month),'{0:0>2}'.format(e.day), '{0:0>2}'.format(e.hour),'{0:0>2}'.format(e.minute),'{0:0>2}'.format(e.second), cnWeek(e.dayofweek),'{:<10}'.format(enWeek(e.dayofweek)),e.weekofyear,e.dayofyear,e.quarter))df1['year'] = df1['日期'].dt.year
df1['month'] = df1['日期'].apply(lambda x:'{0:0>2}'.format(x.month))
df1['day'] = df1['日期'].apply(lambda x:'{0:0>2}'.format(x.day))
df1['hour'] = df1['日期'].apply(lambda x:'{0:0>2}'.format(x.hour))
df1['minute'] = df1['日期'].apply(lambda x:'{0:0>2}'.format(x.minute))
df1['second'] = df1['日期'].apply(lambda x:'{0:0>2}'.format(x.second))
df1['cn_week'] = df1['日期'].apply(call_cnWeek)
df1['W'] = df1['日期'].apply(lambda x:'第{0}周'.format(x.weekofyear))
df1['D'] = df1['日期'].apply(lambda x:'第{0}天'.format(x.dayofyear))
df1['Q'] = df1['日期'].apply(lambda x:'第{0}季度'.format(x.quarter))file = r'E:\Pandas\data\测试日期序列数据.xls'
df1.to_excel(file,index=False)2021-05-01 00:00:00 2021年05月01日00时00分00秒 六 Saturday 第17周 第121天 第2季度
2021-05-02 00:00:00 2021年05月02日00时00分00秒 日 Sunday 第17周 第122天 第2季度
2021-05-03 00:00:00 2021年05月03日00时00分00秒 一 Monday 第18周 第123天 第2季度
2021-05-04 00:00:00 2021年05月04日00时00分00秒 二 Tuesday 第18周 第124天 第2季度
2021-05-05 00:00:00 2021年05月05日00时00分00秒 三 Wednesday 第18周 第125天 第2季度
2021-05-06 00:00:00 2021年05月06日00时00分00秒 四 Thursday 第18周 第126天 第2季度
2021-05-07 00:00:00 2021年05月07日00时00分00秒 五 Friday 第18周 第127天 第2季度
2021-05-08 00:00:00 2021年05月08日00时00分00秒 六 Saturday 第18周 第128天 第2季度
2021-05-09 00:00:00 2021年05月09日00时00分00秒 日 Sunday 第18周 第129天 第2季度
2021-05-10 00:00:00 2021年05月10日00时00分00秒 一 Monday 第19周 第130天 第2季度
这个案例中用到了10种属性,下面分别介绍:
type(df1['日期']) 类型是pandas.core.series.Series,遍历这个Series之后在循环体内,type(e)是Timestamp类型,因此e.xxx都是这个类型的属性
属性名称 | 作用 |
year | 返回四位的年 |
month | 返回月份,int类型 |
day | 日,int类型 |
hour | 小时,int类型 |
minuter | 分钟,int类型 |
second | 秒,int类型 |
dayofweek | 一周中的星期几,0代表星期一,6代表星期天 |
weekofyear | 一年中的第几周 |
dayofyear | 一年中的第几天 |
quarter | 一年中的第几个季度 |
定义了两个函数cnWeek(),enWeek()根据根据dayofweek值返回具体的星期几,
本例中使用了date_range创建日期数据序列,date_range()是pandas中常用的函数,用于生成一个固定频率的DatetimeIndex时间索引,
起始日期是2021-5-1 00:00:00,结束日期是2021-5-10 00:02:00,频率是D表示按日产生时间序列,修改起始结束日期可以得到更多数据
从第25行开始对日期中的各项项进行拆分成单独的列,然后输出到测试日期序列数据.xls,输出结果如下:
Python数据分析库pandas高级接口dt的使用详解相关推荐
- Python数据分析库pandas高级接口dt和str的使用
Series对象和DataFrame的列数据提供了cat.dt.str三种属性接口(accessors),分别对应分类数据.日期时间数据和字符串数据,通过这几个接口可以快速实现特定的功能,非常快捷.本 ...
- Python数据分析库pandas高级接口dt的使用
Series对象和DataFrame的列数据提供了cat.dt.str三种属性接口(accessors),分别对应分类数据.日期时间数据和字符串数据,通过这几个接口可以快速实现特定的功能,非常快捷.今 ...
- pythondifflib详解_用python标准库difflib比较两份文件的异同详解
[需求背景] 有时候我们要对比两份配置文件是不是一样,或者比较两个文本是否异样,可以使用linux命令行工具diff a_file b_file,但是输出的结果读起来不是很友好.这时候使用python ...
- 一文入门 Python 数据分析库 Pandas
Pandas 通常用于快速简单的数据操作.聚合和可视化.在这篇文章中,我将概述如何学习这一工具的使用. Pandas 通常用于快速简单的数据操作.聚合和可视化.在这篇文章中,我将概述如何学习这一工具的 ...
- Python数据分析库pandas基本操作
pandas是什么? 是它吗? ....很显然pandas没有这个家伙那么可爱.... 我们来看看pandas的官网是怎么来定义自己的: pandas is an open source, easy- ...
- Python 标准库之 json 编码和解码器『详解』
Python 标准库之 json 编码和解码器 文章目录 Python 标准库之 json 编码和解码器 一.Python json库介绍 二.导入 json 库 三.Python对应JSON数据类型 ...
- pandas追加写入excel_快速介绍Python数据分析库pandas的基础知识和代码示例
"软件工程师阅读教科书作为参考时不会记住所有的东西,但是要知道如何快速查找重·要的知识点." 为了能够快速查找和使用功能,使我们在进行机器学习模型时能够达到一定流程化.我创建了这个 ...
- python数据分析知识点_快速介绍Python数据分析库pandas的基础知识和代码示例
"软件工程师阅读教科书作为参考时不会记住所有的东西,但是要知道如何快速查找重要的知识点." 为了能够快速查找和使用功能,使我们在进行机器学习模型时能够达到一定流程化.我创建了这个p ...
- 针对SAS用户:Python数据分析库pandas
最新文章
- R语言break函数和next函数实战
- Python 2退出历史舞台 一句话证明它的重要性
- 行星齿轮设计_精密行星减速机的作用、分类及应用领域和特点
- mmdnn tensorflow 转 caffe
- 里面怎么使用import引用_谈谈模块化的 require 和 import
- python multiprocessing 批量下载图片+tqdm
- tcp/udp/socket 端口映射,转发小工具
- 排版侠html怎么复制,排版侠| 3分钟完美编辑变排版达人
- spring 动态代理_Spring中的两种动态代理
- hive的join,left join,right join,full outer join,left semi join,cross join
- 嵌入式设计与开发项目-DS18B20温度传感器程序设计
- 腾讯游戏10大经典案例(二):天堂等于天下
- USB3.0无法识别U盘解决办法
- 小程序获取用户微信步数
- Docker入门实战大全终极版
- DRF实战5 - 商品管理
- 卧槽!我用Python做一个打字测试器!看看谁是最快的男人!
- 15款音视频开发工具,拒绝加班熬夜
- 特征点检测之SURF
- 暗影精灵3 移动硬盘安装Ubuntu (Win + Linux)
热门文章
- 矩阵分解方法总结(未完待续)
- java string长度字节_java String类型数据的字节长度
- php.ini中文翻译版--转载
- 地下管线探测重点与难点分析
- CANoe自动化测试系统 简介
- Distantly Supervised NER with Partial Annotation Learning and Reinforcement Learning阅读笔记
- 【Proteus仿真】【51单片机】水箱液位检测控制装置设计
- 风向风速图将Series中的风向风速数据data和xAxis中的时间data一一对应
- AJAX JSON
- PC端下载B站和yotube视频的简单方法: you-get