panda提取时间戳中的日期_Python datetime 教程:操作时间、日期与时间跨度

185af01cdc6e319b1817cffcd96c20e6.png

在 Python 中处理日期和时间有点麻烦。所幸,Python 提供了一种内置的方式来简化这种操作:Python 的 Datetime 模块。

datetime 可以帮助我们识别并处理与时间相关的元素,如日期,小时,分钟,秒,星期,月份,年份等。它提供了诸如时区和夏令时等很多服务。还可以处理时间戳数据,解析星期几,每月几号,以及从字符串格式化日期和时间等。

简而言之,datetime 是 Python 中处理日期和时间的一大利器。我们现在来深入了解一下。

本节教程中,我们将会学习很多 datetime 中很多详细的方法,包括:

  • 创建日期对象 Date

  • 从日期中获取年份和月份

  • 从日期中获取每月几号和星期几

  • 从日期中获取小时和分钟

  • 从日期中获取一年中的第几周

  • 日期对象转换成时间戳

  • Unix 时间戳字符串转换成日期对象

  • 处理时间差对象 timedelta

  • 比较两个日期和时间之间的差值

  • 日期格式化:strftime() 和 strptime()

  • 时区处理

  • 使用 Pandas 中的 datetime 对象

  1. 获取年,月,日,时,分

  2. 获取星期几与一年中的第几天

  3. 转换日期对象为 DataFrame 索引

学习本教程时,我们建议你在自己的机器上运行一下这些代码。

Python 的 datetime 类

在编写代码之前,有必要先了解一下 datetime 模块中提供的五个主要的对象类。根据我们具体需要执行的操作,我们可能需要使用其中的一个或多个类。

  • datatime:允许我们同时操作时间和日期(月,日,年,时,秒,微秒)。

  • date:允许我们排除时间仅操作日期(月,日,年)

  • time:允许我们排除日期仅操作时间(时,分,秒,微秒)

  • timedelta:一个用于操作日期以及测量的时间跨度

  • tzinfo:一个用于处理时区的抽象类

如果还是不太理解它们之间的区别,也没关系。我们接下来就深入学习一下 datetime 的工作方式,来更好地理解和使用它们。

创建 Date 对象

首先,我们来仔细看看 datetime 对象。由于 datetime 既是模块名也是模块内的类名,所以我们要从 datetime模块内引用 datetime 类。

然后,打印当前日期和时间来查看 datetime 对象中都包含什么。可以使用 datetime 类的 .now() 函数创建一个 datetime 对象,然后打印这个对象,之后再使用 type() 函数打印这个对象的类型。如此,我们可以看到更详细的信息。

222d71fadc4360c88bc08bd22a9112e4.png

7631ae0fb6fa268402c153ce206622b0.png

从上面的结果中,我们可以看到 datetime_object 是 datetime 类的对象实例,对象中包含了年,月,日,时,分,秒,以及毫秒。

从 Date 中提取年份和月份

我们现在已经理解了 datetime 对象的构成,那么我们可以猜一下 date 和 time 对象是怎样的。因为我们已经知道 date 对象可以理解为 datetime 去掉了时间数据,而 time 对象可以理解为 datetime 去掉了日期数据。

我们还可以解决很多问题。比如,大多数数据集中,日期和时间信息是以字符串格式存储的。另外,我们可能不希望拿到所有的日期和时间数据,当我们在做一些诸如月度销售分析的时候,那么将信息分解到毫秒级别的用处并不大。

现在,我们来聚焦于数据科学中的一项常见任务:使用 datetime 从字符串中提取我们实际想要的元素。

为了实现这个目的,我们还需要做一些其他的工作。

使用 strptime() 和 strftime() 处理日期和时间字符串

幸运的是,datetime 提供了两个方法,strptime() 和 strftime(),可以在字符串与 datetime 对象之间互相转换。strptime() 可以读取字符串中的日期与时间信息并将其转换为 datetime 对象,而 strftime 则是将 datetime 对象转换为字符串。

当然,strptime() 并没有魔法,它不能将任意字符串转换为日期和时间,它需要一些人为地帮助,来解释它究竟识别到了什么。但是它只能识别大多数常规的日期和时间字符串格式(详情请查阅文档)。我们现在给定一个日期格式字符串 "YYYY-MM-DD",来看看 strptime() 方法能做什么。

cbcd720320d836afb9790b9913a036b8.png

<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值