两个日期之间的月差

7 python python-3.x

我有两个日期格式a = Timestamp('2022-07-01 00:00:00'),另一个日期格式相同b = Timestamp('1993-09-01 00:00:00')

所以我试图找到这两者之间的月数差异,我的方法是

relativedelta(a,b).years * 12
Run Code Online (Sandbox Code Playgroud)

这给出了值336,但实际差异是346。请让我知道我哪里出错了帮我改正。

Chr*_*ris 6

不足的原因是因为relativedelta它为您提供了“完整”年的数量,即 from1993-09-012021-09-1,因此您错过了2021-09-01和之间的最后十个月2022-07-01。对当前代码的一个简单修改是添加如下月份:

relativedelta(a,b).years * 12 + relativedelta(a,b).months
Run Code Online (Sandbox Code Playgroud)

这给出了346几个月的正确结果。


Sre*_* TP 5

您可以将日期四舍五入为月份to_period(),然后减去结果

a = pd.Timestamp('2022-07-01 00:00:00')
b = pd.Timestamp('1993-09-01 00:00:00')

months = a.to_period('M') - b.to_period('M')

print(months) # 346
Run Code Online (Sandbox Code Playgroud)