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的使用详解相关推荐

  1. Python数据分析库pandas高级接口dt和str的使用

    Series对象和DataFrame的列数据提供了cat.dt.str三种属性接口(accessors),分别对应分类数据.日期时间数据和字符串数据,通过这几个接口可以快速实现特定的功能,非常快捷.本 ...

  2. Python数据分析库pandas高级接口dt的使用

    Series对象和DataFrame的列数据提供了cat.dt.str三种属性接口(accessors),分别对应分类数据.日期时间数据和字符串数据,通过这几个接口可以快速实现特定的功能,非常快捷.今 ...

  3. pythondifflib详解_用python标准库difflib比较两份文件的异同详解

    [需求背景] 有时候我们要对比两份配置文件是不是一样,或者比较两个文本是否异样,可以使用linux命令行工具diff a_file b_file,但是输出的结果读起来不是很友好.这时候使用python ...

  4. 一文入门 Python 数据分析库 Pandas

    Pandas 通常用于快速简单的数据操作.聚合和可视化.在这篇文章中,我将概述如何学习这一工具的使用. Pandas 通常用于快速简单的数据操作.聚合和可视化.在这篇文章中,我将概述如何学习这一工具的 ...

  5. Python数据分析库pandas基本操作

    pandas是什么? 是它吗? ....很显然pandas没有这个家伙那么可爱.... 我们来看看pandas的官网是怎么来定义自己的: pandas is an open source, easy- ...

  6. Python 标准库之 json 编码和解码器『详解』

    Python 标准库之 json 编码和解码器 文章目录 Python 标准库之 json 编码和解码器 一.Python json库介绍 二.导入 json 库 三.Python对应JSON数据类型 ...

  7. pandas追加写入excel_快速介绍Python数据分析库pandas的基础知识和代码示例

    "软件工程师阅读教科书作为参考时不会记住所有的东西,但是要知道如何快速查找重·要的知识点." 为了能够快速查找和使用功能,使我们在进行机器学习模型时能够达到一定流程化.我创建了这个 ...

  8. python数据分析知识点_快速介绍Python数据分析库pandas的基础知识和代码示例

    "软件工程师阅读教科书作为参考时不会记住所有的东西,但是要知道如何快速查找重要的知识点." 为了能够快速查找和使用功能,使我们在进行机器学习模型时能够达到一定流程化.我创建了这个p ...

  9. 针对SAS用户:Python数据分析库pandas

最新文章

  1. R语言break函数和next函数实战
  2. Python 2退出历史舞台 一句话证明它的重要性
  3. 行星齿轮设计_精密行星减速机的作用、分类及应用领域和特点
  4. mmdnn tensorflow 转 caffe
  5. 里面怎么使用import引用_谈谈模块化的 require 和 import
  6. python multiprocessing 批量下载图片+tqdm
  7. tcp/udp/socket 端口映射,转发小工具
  8. 排版侠html怎么复制,排版侠| 3分钟完美编辑变排版达人
  9. spring 动态代理_Spring中的两种动态代理
  10. hive的join,left join,right join,full outer join,left semi join,cross join
  11. 嵌入式设计与开发项目-DS18B20温度传感器程序设计
  12. 腾讯游戏10大经典案例(二):天堂等于天下
  13. USB3.0无法识别U盘解决办法
  14. 小程序获取用户微信步数
  15. Docker入门实战大全终极版
  16. DRF实战5 - 商品管理
  17. 卧槽!我用Python做一个打字测试器!看看谁是最快的男人!
  18. 15款音视频开发工具,拒绝加班熬夜
  19. 特征点检测之SURF
  20. 暗影精灵3 移动硬盘安装Ubuntu (Win + Linux)

热门文章

  1. 矩阵分解方法总结(未完待续)
  2. java string长度字节_java String类型数据的字节长度
  3. php.ini中文翻译版--转载
  4. 地下管线探测重点与难点分析
  5. CANoe自动化测试系统 简介
  6. Distantly Supervised NER with Partial Annotation Learning and Reinforcement Learning阅读笔记
  7. 【Proteus仿真】【51单片机】水箱液位检测控制装置设计
  8. 风向风速图将Series中的风向风速数据data和xAxis中的时间data一一对应
  9. AJAX JSON
  10. PC端下载B站和yotube视频的简单方法: you-get