在 Python 中,任何与日期和时间有关的事情都由 datetime 模块处理,它将模块进一步分为 5 个不同的类。类只是与对象相对应的数据类型。下图总结了 Python 中的 5 个日期时间类以及常用的属性和示例。
由于日期和时间的字母数字性质,将类似的日期和时间解析为 Python 通常会被解释为字符串。在本节中,我们将介绍如何将字符串列表解析为日期时间格式,以及如何将日期和时间数据拆分和组合到数据框中的各个列中。
片段 1 的打印输出
但是,如果日期时间以不寻常或模棱两可的方式格式化怎么办?一个常见的问题是美国和欧洲的日期时间书写方式之间的区别。在美式格式中,月份在前,而在欧洲样式中,日期在前。
默认情况下,pandas 中的 to_datetime 通过将前一个少于 12 位 (<12) 的数字解析为月份来将对象转换为日期时间。例如,2/11/2021 将被解析为 2021-02-11,但 13/11/2021 将被解析为 2021-11-13。但是,有这个格式参数允许您以其他方式定义格式。
或者, strftime() 方法有助于在返回字符串之前格式化日期时间。在以下示例中,原始日期时间之间的破折号 (-) 替换为反斜杠 (/),数字月份 (02) 替换为缩写的英语术语 (Feb)。
由于有多种方法可以解释日期(日、月、年)和时间(时、分、秒),因此了解不同的格式代码至关重要。下表是常用格式代码的备忘单。
没有时区信息的 datetime 对象被称为“naive”,有时区信息的对象(通常在末尾带有 +HH:MM 对应 GMT)被认为是“aware”。pytz 可能是 Python 中最全面的库之一,它简化了时区计算的任务。以下代码段将向您展示如何在“naive”和“aware” datetime 对象之间进行转换,并可以使用不同的时区。代码的最后一部分还演示了如何将给定的日期时间对象转换为本地时区。此示例显示了日本和德国的时区代码,对于其他地区,您可以在此处参考。
片段2的输出
有时我们必须有条件地比较两个日期时间。想象一下,您有两个数据框,第一个数据框仅包含一列日期时间,第二个数据框包含两列表示间隔和其余列中的其他信息。您的目标是从第一个数据帧中找到匹配的日期时间,如果它落在第二个数据帧的间隔内,如果是,则复制其他列。
实现此目的的一种方法是使用 pd.Interval 压缩两个日期时间的间隔,然后将它们分配为数据框的索引,稍后可用于有条件地比较和映射日期时间。如果满足时间条件,这可以通过使用 for 循环复制感兴趣的列来完成。
原文:https://towardsdatascience.com/how-to-work-with-datetime-in-python-26d4092dc484
本文标题:如何在Python中使用DateTime
本文来源:http://www.shufengxianlan.com/qtweb/news23/363173.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联