You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python计算两个日期月差:去除多余内容并转为整数

解决Pandas中日期字段计算整数月差的问题

步骤1:转换日期字段类型

原始日期字段为object类型,无法直接进行精准的月份运算,首先要转为pandas的datetime类型:

import pandas as pd

# 替换为你的DataFrame和字段名
df['start_date'] = pd.to_datetime(df['start_date'])
df['end_date'] = pd.to_datetime(df['end_date'])

步骤2:计算精准整数月差

直接相减日期会得到包含days信息的Timedelta对象,要获取整数月差,最精准的方式是通过年份和月份的差值计算:

# 计算(年差×12) + 月差,得到整数月数
df['month_diff'] = (df['end_date'].dt.year - df['start_date'].dt.year) * 12 + (df['end_date'].dt.month - df['start_date'].dt.month)

此时month_diff列的结果是纯整数,无多余的时间或文字信息。

可选:转换已有Timedelta结果为整数月差

如果已经得到了Timedelta类型的日期差,可通过平均每月天数估算月差(适合近似场景,精度略低于上述方法):

# 假设已有的Timedelta列名为date_diff
df['month_diff'] = (df['date_diff'].dt.days / 30.4375).astype(int)

内容的提问来源于stack exchange,提问作者Ropolola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 15:31:05