pandas时间类型的所有属性及方法

方便今后自己复习

import pandas as pd
from datetime import datetime, timedelta
import localedata = {'ID': ['000{}'.format(str(i)) for i in range(1, 7)],'name': ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff'],'gender': [True, True, False, True, False, True],'birthday': [datetime(2004, 10, 1, 10, 32, 45, 85), datetime(2000, 11, 27), datetime(2002, 1, 27), datetime(2002, 8, 15),datetime(2003, 1, 1), datetime(2002, 12, 31)],'height': [1.1, 1.2, 1.3, 1.4, 1.5, 1.6]
}df = pd.DataFrame(data)
df['birthday']
0   2004-10-01 10:32:45.000085
1   2000-11-27 00:00:00.000000
2   2002-01-27 00:00:00.000000
3   2002-08-15 00:00:00.000000
4   2003-01-01 00:00:00.000000
5   2002-12-31 00:00:00.000000
Name: birthday, dtype: datetime64[ns]
df['birthday'].dt.year  # 获取年
0    2004
1    2000
2    2002
3    2002
4    2003
5    2002
Name: birthday, dtype: int64
df['birthday'].dt.month  # 获取月
0    10
1    11
2     1
3     8
4     1
5    12
Name: birthday, dtype: int64
df['birthday'].dt.day  # 获取天
0     1
1    27
2    27
3    15
4     1
5    31
Name: birthday, dtype: int64
df['birthday'].dt.time  # 获取时间
0    10:32:45.000085
1           00:00:00
2           00:00:00
3           00:00:00
4           00:00:00
5           00:00:00
Name: birthday, dtype: object
df['birthday'].dt.timetz  # 获取时间
0    10:32:45.000085
1           00:00:00
2           00:00:00
3           00:00:00
4           00:00:00
5           00:00:00
Name: birthday, dtype: object
df['birthday'].dt.hour  # 获取小时
0    10
1     0
2     0
3     0
4     0
5     0
Name: birthday, dtype: int64
df['birthday'].dt.second  # 获取分钟
0    45
1     0
2     0
3     0
4     0
5     0
Name: birthday, dtype: int64
 df['birthday'].dt.microsecond  # 获取毫秒
0    85
1     0
2     0
3     0
4     0
5     0
Name: birthday, dtype: int64
df['birthday'].dt.day_name()  # 获取星期
0       Friday
1       Monday
2       Sunday
3     Thursday
4    Wednesday
5      Tuesday
Name: birthday, dtype: object
df['birthday'].dt.weekday  # 获取一周的第几天
0    4
1    0
2    6
3    3
4    2
5    1
Name: birthday, dtype: int64
df['birthday'].dt.dayofweek  # 获取一周的第几天
0    4
1    0
2    6
3    3
4    2
5    1
Name: birthday, dtype: int64
df['birthday'].dt.dayofyear  # 获取一年的第多少天
0    275
1    332
2     27
3    227
4      1
5    365
Name: birthday, dtype: int64
df['birthday'].dt.is_leap_year  # 判断是否为闰年
0     True
1     True
2    False
3    False
4    False
5    False
Name: birthday, dtype: bool
df['birthday'].dt.is_month_end  # 判断是否是一个月的最后一天
0    False
1    False
2    False
3    False
4    False
5     True
Name: birthday, dtype: bool
df['birthday'].dt.is_quarter_end  # 判断是否是季度的最后一天
0    False
1    False
2    False
3    False
4    False
5     True
Name: birthday, dtype: bool
df['birthday'].dt.is_quarter_start  # 判断是否是季度的第一天
0     True
1    False
2    False
3    False
4     True
5    False
Name: birthday, dtype: bool
df['birthday'].dt.is_year_start  # 判断是否是一年的第一天
0    False
1    False
2    False
3    False
4     True
5    False
Name: birthday, dtype: bool
df['birthday'].dt.quarter  # 判断是一年的第几个季度
0    4
1    4
2    1
3    3
4    1
5    4
Name: birthday, dtype: int64
df['birthday'].dt.to_period(freq='Y')  # freq 的值选择要获取的部分
0    2004
1    2000
2    2002
3    2002
4    2003
5    2002
Name: birthday, dtype: period[A-DEC]
df['birthday'].dt.to_pydatetime()  # 返回datetime模块的时间类型
array([datetime.datetime(2004, 10, 1, 10, 32, 45, 85),datetime.datetime(2000, 11, 27, 0, 0),datetime.datetime(2002, 1, 27, 0, 0),datetime.datetime(2002, 8, 15, 0, 0),datetime.datetime(2003, 1, 1, 0, 0),datetime.datetime(2002, 12, 31, 0, 0)], dtype=object)
df['birthday'].dt.strftime('%Y/%m/%d')  # 修改日期格式,
0    2004/10/01
1    2000/11/27
2    2002/01/27
3    2002/08/15
4    2003/01/01
5    2002/12/31
Name: birthday, dtype: object
df['birthday'].dt.floor('min')  # 向下取整 可选参数有 'D','H','S', 'min'
0   2004-10-01 10:32:00
1   2000-11-27 00:00:00
2   2002-01-27 00:00:00
3   2002-08-15 00:00:00
4   2003-01-01 00:00:00
5   2002-12-31 00:00:00
Name: birthday, dtype: datetime64[ns]
df['birthday'].dt.ceil('H')  # 向上取整
0   2004-10-01 11:00:00
1   2000-11-27 00:00:00
2   2002-01-27 00:00:00
3   2002-08-15 00:00:00
4   2003-01-01 00:00:00
5   2002-12-31 00:00:00
Name: birthday, dtype: datetime64[ns]
df['birthday'].dt.round('H')  # 类似于四舍五入
0   2004-10-01 11:00:00
1   2000-11-27 00:00:00
2   2002-01-27 00:00:00
3   2002-08-15 00:00:00
4   2003-01-01 00:00:00
5   2002-12-31 00:00:00
Name: birthday, dtype: datetime64[ns]
df1 = df['birthday'].dt.tz_localize('Asia/Shanghai')  # 按时区标准化
df1
0   2004-10-01 10:32:45.000085+08:00
1          2000-11-27 00:00:00+08:00
2          2002-01-27 00:00:00+08:00
3          2002-08-15 00:00:00+08:00
4          2003-01-01 00:00:00+08:00
5          2002-12-31 00:00:00+08:00
Name: birthday, dtype: datetime64[ns, Asia/Shanghai]
df1.dt.tz  # 获取时区信息
<DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>
df1.dt.tz_convert(None)  # 转换时区,None表示转换为UTC时间后将删除时区
0   2004-10-01 02:32:45.000085
1   2000-11-26 16:00:00.000000
2   2002-01-26 16:00:00.000000
3   2002-08-14 16:00:00.000000
4   2002-12-31 16:00:00.000000
5   2002-12-30 16:00:00.000000
Name: birthday, dtype: datetime64[ns]

转换案例

import datetimedef strplus(val):if len(str(val)) == 1:return '0'+str(val)else:return str(val)def gender(val):if val:return 'male'else:return 'Female'df['year'] = df['birthday'].dt.year
df['age'] = datetime.datetime.now().year - df['birthday'].dt.year
df['birth'] = df['birthday'].dt.year.apply(str).str.cat(df['birthday'].dt.month.apply(strplus), sep='年')
df['gender'] = df['gender'].apply(gender)
df
ID name gender birthday height year age birth
0 0001 aaa male 2004-10-01 10:32:45.000085 1.1 2004 16 2004年10
1 0002 bbb male 2000-11-27 00:00:00.000000 1.2 2000 20 2000年11
2 0003 ccc male 2002-01-27 00:00:00.000000 1.3 2002 18 2002年01
3 0004 ddd male 2002-08-15 00:00:00.000000 1.4 2002 18 2002年08
4 0005 eee male 2003-01-01 00:00:00.000000 1.5 2003 17 2003年01
5 0006 fff male 2002-12-31 00:00:00.000000 1.6 2002 18 2002年12
df['name'].groupby(df['birthday'].dt.year).count()
birthday
2000    1
2002    3
2003    1
2004    1
Name: name, dtype: int64

01-pandas时间类型dt类属性及方法相关推荐

  1. python pandas 日期_python+pandas+时间、日期以及时间序列处理方法

    python+pandas+时间.日期以及时间序列处理方法 先简单的了解下日期和时间数据类型及工具 python标准库包含于日期(date)和时间(time)数据的数据类型,datetime.time ...

  2. python pandas 日期格式_python+pandas+时间、日期以及时间序列处理方法

    先简单的了解下日期和时间数据类型及工具 python标准库包含于日期(date)和时间(time)数据的数据类型,datetime.time以及calendar模块会被经常用到. datetime以毫 ...

  3. python处理时间的标准函数库_python+pandas+时间、日期以及时间序列处理方法

    先简单的了解下日期和时间数据类型及工具 python标准库包含于日期(date)和时间(time)数据的数据类型,datetime.time以及calendar模块会被经常用到. datetime以毫 ...

  4. 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)

    27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...

  5. 基于Qt5.14.2和mingw的Qt源码学习(三) — 元对象系统简介及moc工具是如何保存类属性和方法的

    基于Qt5.14.2和mingw的Qt源码学习(三) - 元对象系统简介及moc工具是如何保存类属性和方法的 一.什么是元对象系统 1.元对象系统目的 2.实现元对象系统的关键 3.元对象系统的其他一 ...

  6. java 编写方法和属性,Java类属性及方法的定义

    文章导读 [在定义类时,经常需要抽象出它的属性和方法,并定义在类的主体中.本文探讨Java类属性及方法的定义和使用.通过本文的学习,你将了解如何在Java类中定义属性及方法.属性值的设置和获取.] 本 ...

  7. java面向对象-------类属性和方法,不同类之间调用

    package java面向对象; /** * 类的创建 */public class Stu { //l类属性 int age; int id; String name; Computer comp ...

  8. python 类装饰器和继承_python装饰器、继承、元类、mixin,四种給类动态添加类属性和方法的方式(一)...

    介绍装饰器.继承.元类.mixin,四种給类动态添加类属性和方法的方式 有时候需要給类添加额外的东西,有些东西很频繁,每个类都需要,如果不想反复的复制粘贴到每个类,可以动态添加. 1 #coding= ...

  9. python类中的属性分为类属性和实例属性两种_python从入门到大神---1、初始化实例、类属性、方法...

    python从入门到大神---1.初始化实例.类属性.方法 一.总结 一句话总结: 方法不加括号是代码段:感觉python方法和js,php很类似,不加括号是代码段,加括号变成方法,比如f,f() 1 ...

最新文章

  1. 【PHPMailer】写一封邮件
  2. 如何调试进入Asp.NET MVC源代码
  3. 如何有效提升网站转化率?从四个方面着手分析!
  4. clob和blob是不是可以进行模糊查询_为省几十元买假内存条?金士顿内存条真伪查询与辨别方法...
  5. Tensorflow详解保存模型(基础版)
  6. 谷歌浏览器服务器协议url,谷歌浏览器在地址栏输入URL到页面展示时中间发生了什么?...
  7. 蔡崇信完成对布鲁克林篮网和巴克莱中心的全资收购
  8. Python使用openpyxl和pandas处理学生成绩Excel文件实用案例
  9. python——sort方法、sorted函数——排序
  10. nginx 限制访问
  11. gcc警告: warning: dereferencing type-punned pointer will break strict-aliasing rules
  12. 单细胞多组学联合应用
  13. Quorum入门2.0:Quorum-企业以太坊-开始尝试
  14. javascript编写奇迹mu原版(含服务端)(4)来到勇者大陆
  15. 华为手机自带浏览器无法下载 iis 网站 apk 问题解决方案(和SSL有关)
  16. eclipes代码提示及防空格自动补全
  17. vue3+ts实现视频根据时间轴截取,并可以通过传入截取起止时间进行当前剪辑的回显
  18. 汉语编程联姻大中院校
  19. 北理计算机学硕保研,2019计算机保研夏令营经验-上科大、北理、北航、中科院计算所夏令营...
  20. 408 | 【2010年】计算机统考真题 自用回顾知识点整理

热门文章

  1. 大一c语言考试题信阳师范学院,zhaodapeng6
  2. 会声会影 我们后惠无期
  3. 经典按键java手机游戏_盘点曾经红极一时的手机游戏,每款都是经典中的经典...
  4. Koordinator 1.0 正式发布:业界首个生产可用、面向规模场景的开源混部系统
  5. Linux驱动学习--V4L2设备(二)subdev的ops介绍及media framework深入解析
  6. 自定义拍照时 拍照界面_在用透射电镜拍照时为什么经常要插入物镜光阑?
  7. C语言:while与do while循环语句
  8. LWN:Intel CPU的间接跳转保护功能!
  9. 66万新购奔驰漏油,车主欲暂停还贷,奔驰金融:贷款必须还!
  10. 2023电子科技大学计算机考研信息汇总