所有数据的开头都会自动分配一个“DOB”(出生日期)。因此,在处理数据时难免会在某个时刻遇到日期和时间数据。本教程将带您了解Python中的datetime模块并使用一些外围库,例如pandas和pytz。在Python中,与日期和时间有关的任何事情都由datetime模块处理,该模块进一步将该模块分为5个不同的类。类只是一个对象对应的数据类型。下图总结了Python中的5个日期时间类以及常用的属性和示例。3个有用的片段1.将字符串转换为日期时间格式,这可能是使用日期时间的最常见情况。由于日期和时间的字母数字性质,将类似的日期和时间解析为Python通常会被解释为字符串。在本节中,我们将介绍如何将字符串列表解析为日期时间格式,以及如何将日期和时间数据拆分和组合到数据框中的各个列中。Snippet1的打印输出但是,如果日期时间的格式不正常或不明确怎么办?一个常见的问题是美国和欧洲编写日期时间的方式不同。在美国格式中,月份在前,而在欧洲格式中,日期在前。默认情况下,pandas中的to_datetime通过解析前面小于12位数字(<12)的数字作为月份将对象转换为日期时间。例如,2/11/2021将被解析为2021-02-11,而13/11/2021将被解析为2021-11-13。但是,拥有此格式参数允许您以其他方式定义格式。或者,strftime()方法有助于在返回字符串之前格式化日期时间。在以下示例中,原始日期时间之间的破折号(-)替换为反斜杠(/),数字月份(02)替换为缩写的英文术语(Feb)。由于有多种解释日期(日、月、年)和时间(小时、分钟、秒)的方法,因此了解不同的格式代码至关重要。下表是常见格式代码的备忘单。2.使用时区没有时区信息的日期时间对象被称为“朴素的”,而具有时区信息的对象(通常在GMT末尾带有+HH:MM)被称为“有意识的”。pytz可能是Python中最全面的库之一,它简化了时区计算的任务。以下代码片段将向您展示如何在“原始”和“感知”日期时间对象之间进行转换,并且可以使用不同的时区。代码的最后一部分还演示了如何将给定的日期时间对象转换为本地时区。此示例显示日本和德国的时区代码,对于其他地区,您可以参考此处。片段2的输出3.使用间隔比较两个日期时间有时我们必须有条件地比较两个日期时间。假设您有两个数据框,第一个数据框仅包含一列日期时间,第二个数据框包含两列,表示间隔和其余列中的其他信息。您的目标是从第一个数据帧中找到匹配的日期时间,如果它落在第二个数据帧的间隔内,如果是,则复制其他列。实现此目的的一种方法是使用pd.Interval压缩两个日期时间之间的间隔,然后将它们作为索引分配到数据框中,稍后可用于有条件地比较和映射日期时间。如果满足时间条件,这可以通过使用for循环复制感兴趣的列来完成。原文:https://towardsdatascience.com/how-to-work-with-datetime-in-python-26d4092dc484
