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

Pandas datetime列如何基于给定日期计算下月最后一天

解决方案

你可以结合pandas内置的月末偏移量MonthEnd实现需求,同时建议使用矢量化操作替代apply,大幅提升大表的运行效率。

方案1:矢量化写法(推荐)

无需逐行遍历,效率更高:

import pandas as pd

# 先对日期列加1个月,再取对应月份的最后一天
my_table['REPORTING_DT_python'] = my_table['BDX_DT'] + pd.DateOffset(months=1) + pd.offsets.MonthEnd(0)

说明:MonthEnd(0)表示取当前日期所在月份的最后一天,不会额外偏移月份

方案2:保留自定义函数的写法

如果你的场景必须使用自定义函数封装,可修改为如下逻辑:

def inc_date(bdx_dt):
    dt = pd.Timestamp(bdx_dt) + pd.DateOffset(months=1)
    return dt + pd.offsets.MonthEnd(0)

my_table['REPORTING_DT_python'] = my_table.apply(lambda row:inc_date(row['BDX_DT']), axis=1)

效果验证

输入日期为2020-11-30时,加1个月得到2020-12-30,再经过MonthEnd(0)偏移后就会得到预期的2020-12-31,所有月份的边界情况都能正常适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:30:01