pandas计算跨年的两个日期的间隔月数

这篇博客介绍了如何使用pandas在Python中计算跨年的两个日期之间的间隔月数,特别是在排除签约当月的情况。通过获取签约后的第二个月的第一天,然后用截止日期减去这个日期来计算月份数,从而实现需求。
摘要由CSDN通过智能技术生成

计算跨年的两个日期的间隔月数

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))

结果

升级需求:计算间隔月数,签约当月不参与月份数计算,可以这样操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值