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

如何用Pandas Timedelta表示一个月?为何‘1M’代表1分钟?

问题解答

pd.Timedelta('1M')返回1分钟是因为Pandas里'M'是**分钟(Minutes)**的缩写,并非月份。

为什么Timedelta不支持月份?

月份的时长不固定(28-31天不等),而pd.Timedelta仅用于表示固定时长的时间差(比如天、小时、分钟这类长度固定的单位),因此没有专门表示月份的代码词。

实现“月份时间差”的两种方法

  • 方法1:使用Pandas的DateOffset
    这是Pandas内置的日历偏移工具,专门处理月份、年份这类可变时长的时间调整:

    import pandas as pd
    
    # 示例:给指定日期加1个月
    target_date = pd.to_datetime('2024-02-28')
    new_date = target_date + pd.DateOffset(months=1)
    # 输出:2024-03-28 00:00:00
    
  • 方法2:使用dateutil.relativedelta
    第三方库python-dateutil的relativedelta功能更灵活,同样支持月份操作:

    from dateutil.relativedelta import relativedelta
    import pandas as pd
    
    target_date = pd.to_datetime('2024-02-28')
    new_date = target_date + relativedelta(months=1)
    # 输出:2024-03-28 00:00:00
    

注意:如果只是想表达“一个月”的时间偏移,不能用Timedelta,必须依赖这类基于日历规则的工具,它们会自动适配不同月份的天数差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:05:27