📅  最后修改于: 2023-12-03 15:34:20.642000             🧑  作者: Mango
在Python的pandas库中,dt.floor
是一个日期和时间函数,它可以将给定的日期时间向下取整到各种时间频率中的最近一次。
Series.dt.floor(freq, ambiguous='raise')
freq
:表示要向下取整到的时间频率,可以是一个字符串或一个pandas Timedelta对象。ambiguous
:可选参数,当有模糊时间戳时,指定如何处理。默认值为raise
,表示引发一个AmbiguousTimeError异常。当设置为NaT
,模糊时间戳将转换为NaT
。当设置为infer
时,它将尝试猜测哪个时区更适合模糊时间戳,并使用该时区进行转换。import pandas as pd
dates = ['2021-07-01 12:45:23', '2021-07-02 12:45:23', '2021-07-03 12:45:23']
s = pd.Series(dates)
print(s)
# 0 2021-07-01 12:45:23
# 1 2021-07-02 12:45:23
# 2 2021-07-03 12:45:23
# dtype: object
s = pd.to_datetime(s)
print(s.dt.floor('D'))
# 0 2021-07-01
# 1 2021-07-02
# 2 2021-07-03
# dtype: datetime64[ns]
这里我们先构造一个字符串类型的Series,然后使用pd.to_datetime
将其转换为一个DatetimeIndex类型的Series。我们接着使用dt.floor('D')
将其向下取整到天,并得到一个新的DatetimeIndex类型的Series。
dt.floor
通常用于将时间戳规范化为给定的时间频率。例如,我们有许多不同的时间戳,需要将它们都规范化为整小时的时间戳。在这种情况下,我们可以使用dt.floor('H')
来实现。