广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中的Pandas时间函数time、datetime模块怎么使用
  • 128
分享到

Python中的Pandas时间函数time、datetime模块怎么使用

2023-07-05 15:07:48 128人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本文小编为大家详细介绍“python中的pandas时间函数time、datetime模块怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中的Pandas时间函数time、datetime模块怎么使用”文章能帮助大家解决

本文小编为大家详细介绍“python中的pandas时间函数time、datetime模块怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中的Pandas时间函数time、datetime模块怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    Python 中提供了对时间日期的多种多样的处理方式,主要是在 time 和 datetime 这两个模块里。

    一、time 模块

    • time 模块不牵扯时区的问题,便于计算。

    • (1) timestamp 时间戳,时间戳表示的是从 1970 年 1 月 1 日 00:00:00 开始按秒计算的偏移量。

    • (2) struct_time 时间元组,共有九个元素组。

    • (3) fORMat time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。

    1、时间格式转换图

    Python中的Pandas时间函数time、datetime模块怎么使用

    • 主要 time 生成方法和 time 格式转换方法实例如下:

    • 首先,我们导入 time 模块,便于我们后续的操作。

    import time

    然后,我们生成 timestamp ,他是一个浮点型数据。

    time.time()#1676978808.2162082

    将其转化为整型数据。

    int(time.time())#1676978809

    我们可以知道一个程序消耗的时间,通过设置程序开始时间和程序结束时间,中间执行一个循环语句,这里以累加到 10000 为例。

    start_time = time.time() s = "" for i in range(10000):     s += str(i)  end_time = time.time()  print("程序消耗时间=",end_time-start_time) #程序消耗时间= 0.0039615631103515625

    我们也可以通过 time 模块调用本地时间,通过生成 struct_time 完成。

    my_time = time.localtime() print(my_time)  print(my_time.tm_year) print(my_time.tm_mon) print(my_time.tm_mday) #time.struct_time(tm_year=2023, tm_mon=2, tm_mday=21, tm_hour=19, tm_min=26, tm_sec=58, #tm_wday=1, tm_yday=52, tm_isdst=0) #2023 #2 #21

    我们可以将 timsstamp 转化为 struct_time。

    time.localtime(1650177058) #time.struct_time(tm_year=2022, tm_mon=4, tm_mday=17, tm_hour=14, tm_min=30, tm_sec=58, #tm_wday=6, tm_yday=107, tm_isdst=0)

    可以将格式化字符串输入到 struct_time。

    time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %X') #time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=16, tm_min=37, tm_sec=6, #tm_wday=3, tm_yday=125, tm_isdst=-1)

    我们也可以将格式化字符串时间反向转变为秒钟数。

    time.mktime(time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %X')) #1304584626.0
    • 我们可以生成 format_time,产生满足我们格式要求的时间。

    • 示例 1:

    #struct_time to format_time time.strftime("%Y-%m-%d %X") time.strftime("%Y-%m-%d %X",time.localtime()) #time.strftime("%Y-%m-%d %X",time.localtime())#'2023-02-21 19:27:05' #生成format_time

    示例 2:

    #struct_time to format_time time.strftime("%Y-%m-%d") #time.strftime("%Y-%m-%d %X",time.localtime())#'2023-02-21'

    示例 3:

    #struct_time to format_time time.strftime("%m-%d-%Y") #time.strftime("%Y-%m-%d %X",time.localtime())#'02-21-2023'

    2. struct_time 元组元素结构

    其具体元素结构可见下述表格。

    属性
    tm_year(年)xxxx 年,比如 2011
    tm_mon(月)1 - 12
    tm_mday(日)1 - 31
    tm_hour(时)0 - 23
    tm_min(分)0 - 59
    tm_sec(秒)0 - 61
    tm_wday(weekday)0 - 6(0表示周日)
    tm_yday(一年中的第几天)1 - 366
    tm_isdst(是否是夏令时)默认为-1
    • 其具体如下作用:

    • (1) 取得时间戳/时间格式的字符串中对应的年/月/日等信息。

    • (2) 作为时间戳和字符串时间之间的桥梁。

    • 具体可见如下示例:

    time_stuct = time.strptime('2011-05-07 16:37:06', '%Y-%m-%d %X') print(time_stuct.tm_year) print(time_stuct.tm_mon) print(time_stuct.tm_mday) print(time_stuct.tm_hour) print(time_stuct.tm_min) my = 'aaa' '%s'% my my_int = 1 '%d'% my_int  "我们在{}工作".format('家里') addr = "家里"  f"我们在{addr}工作"#2011 #5 #7 #16 #37 #'我们在家里工作'

    3. format time 结构化表示

    其具体含义可见下述表格。

    属性含义
    %Y -年[0001,…,2018,2019,…,9999]
    %m -月[01,02,…,11,12]
    %d -天[01,02,…,30,31]
    %M -分钟[00,01,…,58,59]
    %S -秒[00,01,…,58,61]
    %X本地相应时间
    %y去掉世纪的年份(00 - 99)
    • 常见的结构化时间组合有如下几种:

    • 示例 1:

    time.strftime("%Y-%m-%d %X")#'2023-02-21 20:55:40'time.strftime("%Y-%m-%d %X")#'2023-02-21 20:55:40'

    示例 2:

    time.strftime("%Y-%m-%d")#'2023-02-21'

    示例 3:

    time.strftime("%m")#'02'

    我们可以通过 time 运算获取我们想要的时间点,并按 %Y-%m-%d %X 的形式表达出来。

    import time t1 = time.time() t2=t1+24*60*60  time.strftime("%Y-%m-%d %X",time.localtime(t2))#'2023-02-22 21:02:38'

    或者通过 time 进行暂停操作,例如火箭发射,我们在循环结束后暂停 1s,然后进行下一个语句。

    # 倒计时 for i in range(5):     print('\r',' %s 秒!' % (5-i), end='')     # 暂停1s后运行          time.sleep(1) print('\r',"发射!!!!")#发射!!!!

    二、datetime 模块

    datatime 模块重新封装了time模块,提供更多接口,提供的类有:date,time,datetime、timedelta,tzinfo 等。

    1. date类

    其语法模板如下:

    datetime.date(year, month, day)
    • 有静态方法和字段两种方法。

    • date.today():返回一个表示当前本地日期的date对象。

    • date.fromtimestamp(timestamp):根据给定的时间戮,返回一个date对象。

    • 具体可见如下示例:

    • 示例 1:

    from datetime import date import time print('date.today():', date.today()) print('date.fromtimestamp():', date.fromtimestamp(time.time()))#date.today(): 2023-02-21 #date.fromtimestamp(): 2023-02-21

    示例 2:

    from datetime import date print(type(date.fromtimestamp(1650177058))) print(date.fromtimestamp(1650177058))#<class 'datetime.date'> #2022-04-17

    2. 方法和属性

    • 可以通过 d1 = date(2011,06,03) 生成 date 对象 。

    • 其具体含义可见下述表格。

    属性含义
    d1.year
    d1.month
    d.day
    d1.replace(year, month, day)生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性。(原有对象仍保持不变)
    d1.timetuple()返回日期对应的time.struct_time对象
    d1.weekday()返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推
    d1.isoweekday()返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此类推
    d1.isoformat()返回格式如&rsquo;YYYY-MM-DD&rsquo;的字符串
    d1.strftime(fmt)和 time 模块 forma t相同
    • 具体可见如下示例:

    • 示例 1:我们将 day 参数指定为 1。

    now = date.today() now print(now.replace(day=1))#2023-02-01

    示例 2:同示例 1,但是换了一种函数写法。

    date.today().replace(day=1)#datetime.date(2023, 2, 1)

    示例 3:直接使用 now 函数生成当前日期。

    now #datetime.date(2023, 2, 21)

    示例 4:直接使用 now.isoformat() 函数生成 YYYY-MM-DD 格式的当前日期。

    now.isoformat() #'2023-02-21'

    示例 5:直接使用 now.isoweekday() 函数生成周几,返回对应的数字。

    now.isoweekday() #2

    示例 6:使用 now.strftime() 函数自定义输出格式。

    #'2022.04.18'  自定义输出格式 now.strftime('%Y.%m.%d') #'2023.02.21'

    示例 7:

    now = date(2021, 10, 26) print(now.year,now.month,now.day) tomorrow = now.replace(day = 1) print('now:', now, ', 当月第一天:', tomorrow) print('timetuple():', now.timetuple())  print('weekday():', now.weekday()) print('isoweekday():', now.isoweekday()) print('isoformat():', now.isoformat()) print('strftime():', now.strftime("%Y.%m.%d")) #2021 10 26 #now: 2021-10-26 , 当月第一天: 2021-10-01 #timetuple(): time.struct_time(tm_year=2021, tm_mon=10, tm_mday=26, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=299, tm_isdst=-1) #weekday(): 1 #isoweekday(): 2 #isoformat(): 2021-10-26 #strftime(): 2021.10.26

    3. datetime 类

    • datetime 相当于 date 和 time 结合起来。

    • 其语法模板如下:

    datetime.datetime (year, month, day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] )
    • datetime.today():返回一个表示当前本地时间的 datetime 对象。

    • datetime.now([tz]):返回一个表示当前本地时间的 datetime 对象,如果提供了参数 tz,则获取 tz 参数所指时区的本地时间。

    • datetime.fromtimestamp(timestamp[, tz]):根据时间戮创建一个 datetime 对象,参数 tz 指定时区信息。

    • datetime.strptime(date_string, format):将格式字符串转换为 datetime 对象。

    • 我们可以将 datetime 转化为指定格式的字符串。

    from  datetime import datetime now = datetime.now() print(type(now))print(now.strftime('%Y-%m-%d %X'))print(now.strftime('%Y-%m-%d %H:%M'))#<class 'datetime.datetime'> #2023-02-21 21:45:25 #2023-02-21 21:45
    • 对于 2021-11-25 10:23 这类的字符串,我们可以使用 strptime 将其转化为 datetime。

    • 需要注意的是,将字符串转化为 datetime 数据类型,格式需要统一。

    my_str = '2021-11-10 10:23' print(datetime.strptime(my_str,'%Y-%m-%d %H:%M'))my_str = '10/11/2021 10:23' datetime.strptime(my_str,'%d/%m/%Y %H:%M')#2021-11-10 10:23:00 #datetime.datetime(2021, 11, 10, 10, 23)

    汇总一下,见下方例子。

    from  datetime import * import time now = datetime.now() print('today():', datetime.today()) print('now():', datetime.now()) print('fromtimestamp(tmstmp):', datetime.fromtimestamp(time.time()))    print('datetime.strptime(date_string, format):',datetime.strptime('2022-03-21', "%Y-%m-%d"))  #today(): 2023-02-21 21:45:28.141748 #now(): 2023-02-21 21:45:28.141748 #fromtimestamp(tmstmp): 2023-02-21 21:45:28.141748 #datetime.strptime(date_string, format): 2022-03-21 00:00:00

    三、timedelta 类的时间加减

    • 使用 timedelta 可以很方便的在日期上做天 days,小时 hour,分钟 minute,秒 second,毫秒 millisecond,微秒 microsecond 的时间计算,如果要计算月份则需要另外的办法。

    • 具体可见如下示例。

    • 示例 1(加上 -1 和减 1 是相同的):

    from  datetime import datetime from  datetime import timedelta dt = datetime.now() #日期减一天 dt_1 = dt + timedelta(days=-1)   #昨天  dt_11 = dt - timedelta(days=1)   #昨天  dt3 = dt + timedelta(days=1)   #明天  print("dt3:",dt_1)  print("dt_11:",dt_11)  print("dt3:",dt3)#dt3: 2023-02-20 22:11:28.388926 #dt_11: 2023-02-20 22:11:28.388926 #dt3: 2023-02-22 22:11:28.388926

    示例 2(可以使用 s.total_seconds 返回在该时间实例的给定持续时间内覆盖的总秒数 ):

    # 明天的datetime  - 昨天的datetime s= dt3 - dt_1 print(s.days) print(s.total_seconds())#2 #172800.0

    示例 3:

    delta_obj = dt3-dt print(type(delta_obj),delta_obj)#<type 'datetime.timedelta'> 1 day, 0:00:00 # total_seconds():返回在该时间实例的给定持续时间内覆盖的总秒数 print(delta_obj.days ,delta_obj.total_seconds())#1 86400.0#<class 'datetime.timedelta'> 1 day, 0:00:00 #1 86400.0

    四、时间处理基础

    • Pandas 提供了四种类型的生成日期时间的对象:日期时间、时间增量、时间跨度、日期偏移量。

    • (1) 日期时间(Date Times):具有时区支持的特定日期和时间。与 Python 标准库中的 datetime.datetime 类似。如 2020 年 12 月 6 日 13 点 37 分 50 秒.

    • (2) 时间增量(Time Deltas):绝对持续时间,用于在指定时间点基础上增加指定的增量,如在某年月日的基础上增加 2 天、增加 2 个月、减少 4 小时等,最后产生一个新的时间点。

    • (3) 时间跨度(Time Span):由时间点及其相关周期定义的时间跨度,如连续产生一年四个季度的时间序列。

    • (4) 日期偏移(Date Offsets):以日历计算的相对持续时间,表示时间间隔,两个时间点之间的长度,如日、周、月、季度、年。

    概念标量类数组Pandas 数据类型主要建立方法
    日期时间(Date Times)Timesstamp 时间戳DatetimeIndex 时间索引datetime64[ns]、datetime64[ns,tz]to datetime()、date_range()
    时间增量(Time Deltas)Timedelta 时间增量Timedeltalndex 时间增量索引timedelta[ns]to timedelta()、timedelta range()
    时间跨度(Time Span&#x#xff09;Period 时间周期PeriodIndex 周期索引period[freq]Period()、period_range()
    日期偏移(Date Offsets)DateOffsetNoneNoneDateOffset()
    • 一般情况下,时间序列主要是 Series 或 DataFrame 的时间型索引,可以用时间元素进行操控。

    读到这里,这篇“Python中的Pandas时间函数time、datetime模块怎么使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网Python频道。

    --结束END--

    本文标题: Python中的Pandas时间函数time、datetime模块怎么使用

    本文链接: https://www.lsjlt.com/news/352832.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Python中的Pandas时间函数time、datetime模块怎么使用
      本文小编为大家详细介绍“Python中的Pandas时间函数time、datetime模块怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中的Pandas时间函数time、datetime模块怎么使用”文章能帮助大家解决...
      99+
      2023-07-05
    • Python中的Pandas 时间函数 time 、datetime 模块和时间处理基础讲解
      目录一、time 模块1、时间格式转换图2. struct_time 元组元素结构3. format time 结构化表示二、datetime 模块1. date类2. 方法和属性3...
      99+
      2023-03-23
      Python Pandas 时间函数 time Python datetime 模块 Python Pandas时间处理
    • Python时间模块time()与datetime()怎么使用
      这篇“Python时间模块time()与datetime()怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Pytho...
      99+
      2023-06-29
    • Python时间模块datetime、time、calendar的使用方法
      本文简单总结了一下Python处理时间和日期方面的模块,主要就是datetime、time、calendar三个模块的使用,希望这篇文章对于学习Python的朋友们有所帮助。 首先就是模块的调用,很多IDE...
      99+
      2022-06-04
      使用方法 模块 时间
    • Python日期与时间模块(datetime+time+Calendar+dateuil )相关使用讲解
      目录1 前言2 datetime 模块2.1 date类2.2 time类2.3 datetime类2.4 timedelta类2.4.1 时间增加2.4.2 计算时间差2.5 da...
      99+
      2022-11-11
    • python中time模块怎么取当前时间
      python中time模块获取当前时间的方法:1、在win操作系统中找到python程序目录;2、打开idle工具;3、在idle中新建一个shell脚本;4、输入“import time”指令导入time模块;5、通过“time.strf...
      99+
      2022-10-17
    • Python中time模块与datetime模块在使用中的不同之处
      Python 中提供了对时间日期的多种多样的处理方式,主要是在 time 和 datetime 这两个模块里。今天稍微梳理一下这两个模块在使用上的一些区别和联系。 time 在 Python 文档里,tim...
      99+
      2022-06-04
      模块 不同之处 Python
    • Python time模块之时间戳与结构化时间怎么使用
      本篇内容介绍了“Python time模块之时间戳与结构化时间怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!导入相关库im...
      99+
      2023-07-02
    • 怎么在python中使用time模块处理系统时间
      怎么在python中使用time模块处理系统时间?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C#...
      99+
      2023-06-14
    • Python time模块之时间戳与结构化时间的使用
      目录1. 时间戳1.1 time.time()1.2 时间戳 转 字符串2. 结构化时间2.1 本地时间2.2 格林威治时间(零时区)2.3 结构化时间 转 字符串2.4 字符串 转...
      99+
      2022-11-12
    • 如何在python中使用time模块格式时间
      这篇文章将为大家详细讲解有关如何在python中使用time模块格式时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python是什么意思Python是一种跨平台的、具有解释性、编译性、互...
      99+
      2023-06-14
    • python的time模块时间戳与结构化时间如何使用
      这篇文章主要介绍了python的time模块时间戳与结构化时间如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python的time模块时间戳与结构化时间如何使用文章都会有所收获,下面我们一起来看看吧。t...
      99+
      2023-07-02
    • python中怎么使用time模块指定格式时间字符串转为时间戳
      这篇“python中怎么使用time模块指定格式时间字符串转为时间戳”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“pytho...
      99+
      2023-07-05
    • Python中的time模块和calendar模块怎么用
      这篇文章将为大家详细讲解有关Python中的time模块和calendar模块怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在Python中对时间和日期的处理方式有很多,其中转换日期是最常见的一个功...
      99+
      2023-06-25
    • Python中的日期时间模块怎么使用
      本篇内容主要讲解“Python中的日期时间模块怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中的日期时间模块怎么使用”吧!Python 提供了 日期和时间模块用来处理日期和时...
      99+
      2023-07-05
    • PHP怎么使用time()函数将当前时间转为时间戳
      这篇文章主要介绍了PHP怎么使用time()函数将当前时间转为时间戳的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP怎么使用time()函数将当前时间转为时间戳文章都会有所收获,下面我们一起来看看吧。在PH...
      99+
      2023-07-05
    • 怎么使用Python函数和模块
      本篇内容介绍了“怎么使用Python函数和模块”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在讲解本章节的内容之前,我们先来研究一道数学题,...
      99+
      2023-06-01
    • Python函数和模块怎么使用
      本篇内容介绍了“Python函数和模块怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、函数和模块概述(一)函数概述函数可以看成是语...
      99+
      2023-06-22
    • 怎么在python中使用pandas模块查看DataFrame
      这篇文章将为大家详细讲解有关怎么在python中使用pandas模块查看DataFrame,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、首先加载pandas模块import p...
      99+
      2023-06-15
    • Python的time库的函数怎么使用
      这篇“Python的time库的函数怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
      99+
      2022-10-19
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作