在Python中,我们可以使用pandas和datetime模块来获取当前日期之前一个月的时间。以下是一个示例:
使用pandas:
import pandas as pd
from pandas.tseries.offsets import DateOffset
# 获取当前日期
now = pd.to_datetime('today')
# 计算一个月前的日期
one_month_ago = now - DateOffset(months=1)
print(one_month_ago)
使用datetime:
import datetime
from dateutil.relativedelta import relativedelta
# 获取当前日期
now = datetime.datetime.now()
# 计算一个月前的日期
one_month_ago = now - relativedelta(months=1)
print(one_month_ago)
这两段代码都会输出当前日期之前一个月的日期。注意,由于每个月的天数不同,所以"一个月前"的具体日期可能会有所不同。例如,如果今天是3月31日,那么一个月前可能是2月28日或2月29日,取决于是否是闰年。具体的日期计算规则可以参考pandas的官方文档和python-dateutil的官方文档。
pandas.tseries.offsets.DateOffset
是Pandas中用于创建日期范围的标准日期增量²。它的工作方式与relativedelta
相同,我们可以传入关键字参数来使用它²。
每个偏移量都指定了一组符合DateOffset
的日期。例如,Bday
定义了这组日期为工作日(周一至周五)²。DateOffsets
可以创建以将日期向前移动给定数量的有效日期²。例如,可以将Bday(2)
添加到日期中,将其向前移动两个工作日²。如果日期没有从有效日期开始,那么首先会将其移动到有效日期,然后创建偏移量²。
pandas.tseries.offsets.DateOffset
函数的语法和参数如下²:
pandas.tseries.offsets.DateOffset(n=1, normalize=False, **kwds)
n
:偏移量代表的时间周期数²。normalize
:是否将DateOffset
加法的结果向下舍入到前一个午夜²。**kwds
:添加到或替换偏移量值的时间参数。添加到偏移量的参数(如Timedelta
):年、月等²。
例如,以下是如何使用pandas.tseries.offsets.DateOffset
函数创建2天的日期偏移量,并将其添加到给定的时间戳对象中,将日期向前移动2天²:
import pandas as pd
ts = pd.Timestamp('2019-10-10 07:15:11')
do = pd.tseries.offsets.DateOffset(n = 2)
new_timestamp = ts + do
print(new_timestamp) # Output: 2019-10-12 07:15:11
同样,以下是如何创建10天和2小时的日期偏移量,并将其添加到给定的时间戳对象中,将日期向前移动10天和2小时²:
import pandas as pd
ts = pd.Timestamp('2019-10-10 07:15:11')
do = pd.tseries.offsets.DateOffset(days = 10, hours = 2)
new_timestamp = ts + do
print(new_timestamp) # Output: 2019-10-20 09:15:11
源: 与必应的对话, 2023/11/23
(1) Python | Pandas tseries.offsets.DateOffset - GeeksforGeeks. https://www.geeksforgeeks.org/python-pandas-tseries-offsets-dateoffset/.
(2) pandas.tseries.offsets.DateOffset — pandas 2.1.3 documentation. https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.tseries.offsets.DateOffset.html.
(3) Python | Pandas tseries.offsets.DateOffset.onOffset. https://www.geeksforgeeks.org/python-pandas-tseries-offsets-dateoffset-onoffset/.
(4) python - Pandas Using Frequencies to Offset Date - Stack Overflow. https://stackoverflow.com/questions/69183162/pandas-using-frequencies-to-offset-date.
标签:10,offsets,datetime,日期,tseries,时间,pandas,DateOffset From: https://blog.51cto.com/u_16055028/8526179