计算跨年的两个日期的间隔月数
from dateutil.relativedelta import relativedelta
import datetime
import pandas as pd
start_date = "2022-12-1"
end_date = "2023-11-30"
n1 = pd.to_datetime(end_date)
data = pd.read_excel("D:/桌面/大西瓜.xlsx")
# 将日期列转为datetime格式
d1 = data.copy()
d1["签约日期转dt"] = pd.to_datetime(d1["签约日期"])
# 定义函数,运用apply和匿名函数对日期dt列进行加减
def f0(x):
# 判断是否跨年
if x.year == n1.year:
y = relativedelta(dt1=n1,dt2=x).months
return y
else:
y = (relativedelta(dt1=n1,dt2=x).years)*12+relativedelta(dt1=n1,dt2=x).months
return y
d1["间隔月数"] = d1["签约日期转dt"].apply(lambda x:f0(x))
结果
升级需求:计算间隔月数,签约当月不参与月份数计算,可以这样操作
思