我的编程空间,编程开发者的网络收藏夹
学习永远不晚

深入了解Python中的时间处理函数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

深入了解Python中的时间处理函数

一、datetime模块介绍

python中处理时间有个datetime模块,模块定义了如下几个类:

  • datetime.date:表示日期的类,常用属性有year、month、day。
  • datetime.time:表示时间的类,常用属性有hour、minute、second、microsecond。
  • datetime.datetime:表示日期时间类。
  • datetime.timedelta:表示时间间隔类,即两个时点之间的长度。
  • datetime.tzinfo:表示时区的类。

为了大家熟悉上面常用的类,下面介绍一些实例。

1 datetime.date类


#datetime.date类
import datetime

print('1.现在是',datetime.date.today(),'日')
print('2.现在是',datetime.date.today().year,'年')
print('3.现在是',datetime.date.today().month,'月')
print('4.现在是',datetime.date.today().day,'日')

#得到结果:
1.现在是 2021-10-31 日
2.现在是 2021 年
3.现在是 10 月
4.现在是 31 日

2 datetime.datetime类


#datetime.datetime类
import datetime

print('1.现在是',datetime.datetime.today(),'日')
print('2.现在是',datetime.datetime.today().year,'年')
print('3.现在是',datetime.datetime.today().month,'月')
print('4.现在是',datetime.datetime.today().day,'日')
print('5.现在是',datetime.datetime.today().hour,'时')
print('6.现在是',datetime.datetime.today().minute,'分')
print('7.现在是',datetime.datetime.today().second,'秒')
print('8.现在是',datetime.datetime.today().microsecond,'微秒')

#得到结果:
1.现在是 2021-10-31 15:55:23.676360 日
2.现在是 2021 年
3.现在是 10 月
4.现在是 31 日
5.现在是 15 时
6.现在是 55 分
7.现在是 23 秒
8.现在是 677333 微秒

3 datetime.timedelta类


#datetime.timedelta类
import datetime

today = datetime.date.today()
yestoday = today + datetime.timedelta(days = -1)
tomorrow = today + datetime.timedelta(days = 1)
print('1.今天是', today,'日')
print('2.昨天是', yestoday,'日')
print('3.明天是', tomorrow,'日')

#得到结果:
1.今天是 2021-10-31 日
2.昨天是 2021-10-30 日
3.明天是 2021-11-01 日

二、日期转字符

这一小节介绍把日期转换成字符,主要用到datetime.datetime.strftime函数。


#dateTime to str
date_time_now = datetime.datetime.now()
str_now1 = datetime.datetime.strftime(date_time_now, '%Y-%m-%d')

print(date_time_now)
str_now1

#得到结果:
2021-10-31 16:20:45.391792
'2021-10-31'

三、字符转日期

  这一小节介绍把字符转换成日期,主要用到datetime.datetime.strptime函数。


#str to date
str_time = '2021-10-21'
date_time = datetime.datetime.strptime(str_time, '%Y-%m-%d').date()
print(date_time)

#得到结果:
2021-10-21

四、数值转日期

这一小节介绍把数值转换成日期。从excel数据表中读取时间,如果是2021/10/11这种格式,会转变成相应数值44480。这时需要转换成对应的日期,具体代码如下:


#num to date
from datetime import datetime
from xlrd import xldate_as_datetime, xldate_as_tuple

num = 44480
datetime(*xldate_as_tuple(num,0)).strftime('%Y-%m-%d')

#得到结果:
'2021-10-11'

五、时间函数在催收数据处理中的应用

本小节是应用前面小节阐述的函数,处理实际工作中遇到的问题。比如有一批信贷催收数据,由于一个客户可能电话没有接通,导致存在多次拨打的可能。我们想分析客户没有还钱的真实原因,所以想取客户最后一次通话,催收员记录的客户逾期原因。这时就需要把数据集按合同号和拨打电话的时间排序,取最后一次拨打电话的逾期原因。

1 读取数据

首先是读取数据,代码如下:


import pandas as pd
from xlrd import open_workbook

file_name = r'F:\公众号\43.时间函数\催记-2021-10-11至2021-10-17.xlsx'
#文件名称
table = open_workbook(file_name)
#打开文件
sheets_name = table.sheet_names()
#获取excel中的sheet名
get_sheet1 = table.sheet_by_name('Sheet1')
#获取Sheet1
data = list()
for i in range(get_each_sheet.nrows):
    col_values = get_sheet1.row_values(i, start_colx=0, end_colx=None)
    data.append(col_values)
data1 = pd.DataFrame(data)
#把Sheet1中的数据读取出来生成数据框
data1.columns = data1.iloc[0]
data1 = data1.drop(index=0)
#数据框列名确定,并删除第一行
data2 = data1[['合同号', '姓名', '联络类型', '联络类型', '催收时间', '催收内容', '催收状态', '委案日期']]
#取数据框中的固定列

注:如需本文数据,可直接在公众号中回复”催收数据时间处理”,即可免费获取。

得到结果:

2 把催收时间处理成日期格式

接着是处理催收时间变成日期格式,代码如下:


from datetime import datetime
from xlrd import xldate_as_datetime, xldate_as_tuple

def num_to_date(num_):
    return datetime(*xldate_as_tuple(num_,0)).strftime('%Y-%m-%d')

data2['催收时间'] = data2['催收时间'].apply(num_to_date)
data2.head(2)

得到结果:

3 取客户最后一条催收记录

最后是对数据框按合同号和催收时间进行排序,取最后一条催收记录,代码如下:


data3 = data2.sort_values(by=['合同号', '催收时间'],ascending=[False, False])
data3 = data3.groupby('合同号',as_index=False).first()

print(data2.shape)
print(data3.shape)

得到结果:

(1744, 8)

(1455, 8) 

到此这篇关于深入了解Python中的时间处理函数的文章就介绍到这了,更多相关Python时间处理函数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

深入了解Python中的时间处理函数

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

下载Word文档

猜你喜欢

深入理解golang函数中的错误处理

go 语言中的错误处理机制允许您优雅地处理错误,避免应用程序崩溃。错误类型为 error 接口,包含错误消息字符串。错误处理语法包括:err 变量接收错误,if err != nil 块检查错误发生,return err 返回错误到调用函数
深入理解golang函数中的错误处理
2024-05-04

深入了解Python装饰器函数

本篇文章给大家带来了关于python的相关知识,其中主要整理了装饰器函数的相关问题,包括了装饰器的形成过程、本质与功能、进阶与优化等等内容,下面一起来看一下,希望对大家有帮助。假如我写了一个函数 fdef f(): print(hello)之后我想知道这段函数执行所要的时间,这好办,我只要将代码改为如下就行import timedef f(): start = time.time()
2022-06-26

深入了解Java8中的时区日期时间

Java 在 java.time 包中也提供了几个类用于处理需要关注时区的日期时间 API,本文将通过简单的示例讲讲它们的用法,需要的可以参考一下
2023-05-14

深入理解MySQL中时间范围的处理方式

MySQL中时间范围的处理方式在数据库操作中是非常常见和重要的,能够帮助我们更有效地查询和筛选数据。本文将深入探讨MySQL中时间范围的处理方式,包括时间的存储格式、时间范围的比较和筛选等内容,并通过具体的代码示例来说明。首先,我们需要了
深入理解MySQL中时间范围的处理方式
2024-03-01

Python之split函数的深入理解

split函数主要应用场景是Python对字符串的处理中(数据分析,数据处理),以及计算机二级考试的常考基础知识点,这篇文章主要介绍了Python之split函数的详解,需要的朋友可以参考下
2023-02-08

深入了解JavaScript中的函数柯里化

JavaScript函数柯里化是一种将接受多个参数的函数转换为一系列接受单个参数的函数的技术。本文将通过简单的示例为大家详细讲讲函数柯里化的相关应用,需要的可以参考一下
2023-05-16

深入了解 PHP 函数的构成

php 函数由函数名、参数、返回类型和函数体组成。函数类型可分为标量函数、复合函数和 void 函数。标量函数返回基本值,复合函数返回复杂数据结构,void 函数不返回任何值。举例而言,calculatesum 函数计算两个整数的总和并返回
深入了解 PHP 函数的构成
2024-04-11

深入了解MySQL中聚合函数的使用

目录什么是聚合函数SUM 函数MAX 函数MIN 函数AVG 函数COUNT 函数聚合函数综合小练习聚合函数综合练习 -1聚合函数综合练习 -2今天的章节我们将要来学习一下 “聚合函数” ;首先我们需要学习聚合函数对
2022-07-27

Python中的Pandas 时间函数 time 、datetime 模块和时间处理基础讲解

Python 中提供了对时间日期的多种多样的处理方式,主要是在 time 和 datetime 这两个模块里,这篇文章主要介绍了Python中的Pandas 时间函数 time 、datetime 模块和时间处理基础,需要的朋友可以参考下
2023-03-23

深入理解golang函数的错误处理机制

在 go 中,函数通过 error 变量表示错误,这是一个实现了 error() 方法的接口。如果函数成功执行,则 error 变量应为 nil。而要将错误从函数中传播出来,需要在函数签名中指定返回值类型为 error。通过检查返回的 er
深入理解golang函数的错误处理机制
2024-04-24

PHP 中错误处理函数的深入探究?

php 中提供错误处理函数,包括:设置自定义错误处理函数:set_error_handler()脚本执行完成后执行函数:register_shutdown_function()获取最后一个错误信息:error_get_last()记录错误到
PHP 中错误处理函数的深入探究?
2024-05-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录