📅  最后修改于: 2023-12-03 15:22:56.204000             🧑  作者: Mango
在Python中,pandas库提供了一种在datetime类型数据上进行操作的方法,即.dt访问器。dt访问器必须应用于一个datetimelike值,例如DateTime,Timestamp或Period。这个访问器还可以应用于pandas的Series和DataFrame对象,从而提供了超越简单的Python datetime模块的更多灵活性。
.dt访问器可以用于许多不同的操作,其中一些如下:
通过.dt访问器,我们可以轻松地获取一个日期或时间的任何一部分,如年、月、日、小时、分钟、秒等。以下是一些示例:
import pandas as pd
dates = pd.Series(["2022-03-10 12:00:00", "2023-05-10 15:30:00"])
dates = pd.to_datetime(dates)
print(dates.dt.year) # 输出年份
print(dates.dt.month) # 输出月份
print(dates.dt.day) # 输出日期
print(dates.dt.hour) # 输出小时
print(dates.dt.minute) # 输出分钟
print(dates.dt.second) # 输出秒
.dt访问器可以在日期上添加或减去一定数量的时间。以下是一些示例:
import pandas as pd
dates = pd.Series(["2022-03-10 12:00:00", "2022-03-11 15:30:00"])
dates = pd.to_datetime(dates)
print(dates + pd.Timedelta(days=7)) # 在日期上加7天
print(dates - pd.Timedelta(hours=3)) # 在日期上减3小时
通过.dt访问器,我们可以获取两个日期之间的差异,并以不同的单位返回结果。以下是一些示例:
import pandas as pd
dates1 = pd.Series(["2022-03-10 12:00:00", "2022-03-11 15:30:00"])
dates2 = pd.Series(["2022-03-10 00:00:00", "2022-04-01 00:00:00"])
dates1 = pd.to_datetime(dates1)
dates2 = pd.to_datetime(dates2)
print((dates2 - dates1).dt.days) # 获取日期之间的天数差异
print((dates2 - dates1).dt.seconds) # 获取日期之间的秒数差异
在Python中,.dt访问器为处理日期和时间提供了很多方便的方法。无论是获取日期和时间的任何一部分,还是在日期上添加或减去一定数量的时间,或者获取两个日期之间的差异,.dt访问器都可以让我们轻松完成任务,而无需编写大量的代码。如果您通常使用datetime模块或其他date/time库来处理日期和时间,请考虑使用pandas的.dt访问器,以简化您的工作流程。