我有两个日期,格式为Building synchronization state...
Starting synchronization...
Copying s3://input/0000
[0/1 files][ 1.0 MiB/ 5.1 MiB] (number here)% Done
,另一个日期是相同的格式,a = Timestamp('2022-07-01 00:00:00')
所以我试图找出两者之间的月份差,我的做法是
b = Timestamp('1993-09-01 00:00:00')
哪个给出值relativedelta(a,b).years * 12
,但实际差是336
。请让我知道我出了什么问题,请纠正我。
答案 0 :(得分:2)
您可以使用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
答案 1 :(得分:0)
之所以会出现短缺,是因为relativedelta
为您提供了“完整”的年份,即从1993-09-01
到2021-09-1
,因此您错过了{ {1}}和2021-09-01
。您当前代码的一个简单修改就是添加这样的月份:
2022-07-01
给出正确的结果relativedelta(a,b).years * 12 + relativedelta(a,b).months
个月。