整理总结 Python编程中时间日期类数据处理与类型转换(含 pandas)

本文主要介绍了Python编程中与时间日期相关的处理,包括time模块、datetime模块和pandas库中的时间处理。重点讲解了如何进行时间戳转换、如何在datetime模块中应用时间日期,并探讨了在pandas中转换数据类型和处理时间序列数据的方法。
摘要由CSDN通过智能技术生成

pandas可能是我最高频使用的库,基于它的易学、实用,我也非常建议朋友们去尝试它。——尤其当你本身不是程序员,但多少跟表格或数据打点交道时,pandasexcelVBA 简单优雅多了。

pandas 善于处理表格类数据,而我日常接触的数据天然带有时间日期属性,比如用户行为日志、爬虫爬取到的内容文本等。于是,使用 pandas 也就意味着相当频繁地与时间日期数据打交道。这篇笔记将从我的实战经验出发,整理我常用的时间日期类数据处理、类型转换的方法。

与此相关的三个库如下。


import time
import datetime
import pandas as pd

其中,timedatetime都是 python 自带的,pandas则是一个第三方库。换言之,前两者无需额外安装,第三方库则需要通过pip install pandas命令行自行安装。如何检查自己是否安装了某个库,如何安装它,又如何查看和更新版本,对新手来说是一个比较大的话题,也是基础技能,值得另外整理一篇笔记,就不在这里占篇幅了。

一、time模块

time模块,我最常用到的功能就三个:

  • 指定程序休眠;
  • 获取当前时间戳;
  • 时间戳与本地时间的互相转换

time.sleep(s) 指定程序休眠 s 秒

指定程序休眠时间,通常是在长时间运行的循环任务中进行。比如爬虫任务,控制读取网页的时间间隔;自循环任务的时间间隔,调用浏览器打开网页的时间间隔等等。

先用两个打印语句,辅助观察和理解time.sleep()的效果:

print(datetime.datetime.now())
time.sleep(5)
print(datetime.datetime.now())

至于长时间运行的循环任务,我通常是把核心业务逻辑封装好,利用jupyter lab自带的多进程特定,建一个 notebook 放入下面这个函数去持续运行。

在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
def repeat_myself(how_many_times = 10):
    print('--------',how_many_times,'----------')
    # 被封装的核心代码
    your_main_def() 

    # 自循环减 1 ;如果剩余次数是0,则终止自循环
    how_many_times += -1
    if how_many_times == 0:
        print(datetime.datetime.now(),'stop it.')
        return

    # 每次调用设定一个时间间隔
    print(datetime.datetime.now(),'have a rest')
    how_long = random.randint(30,120)
    time.sleep(how_long)
    return repeat_myself(how_many_times)

repeat_myself(12)

time.time()获取当前时间戳

最初我认为无需急于掌握时间戳这个技能点,但实战中,1) 我的爬虫有时爬取到时间戳类型的数据,为了易读,要把它转换为正常人能看懂的方式;2) 使用 mysql 时我关心存储所占用的空间以及读写效率,并获知一个时间数据存成 char 不如时间戳更节省空间。好吧,实战需要,那么赶紧掌握起这个小技能吧。

先了解下如何生成时间戳。通过time.time()得到的时间戳,是一个有着10位整数位 + 6位小数位的浮点数,可根据需要简单运算转换为需要的 10、13、16 位整数时间戳。

# 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值