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

Python如何实现财年起始为7月的财周编号计算?

财周编号计算实现方案

计算逻辑

  • 先判定每个日期对应的财年起始日:若日期月份≥7,财年起始日为当年7月1日;否则为上一年7月1日
  • 计算当前日期与财年起始日的间隔天数,向下取整得到周数差后加1,即为该日期对应的财周编号
  • 可根据公司周起始规则(周一/周日)微调偏移量适配业务要求

实现代码

通用版(易理解,适合中小数据量)

import pandas as pd

def get_fiscal_week(date):
    # 确定当前日期对应的财年起始日
    if date.month >= 7:
        fiscal_start = pd.Timestamp(year=date.year, month=7, day=1)
    else:
        fiscal_start = pd.Timestamp(year=date.year - 1, month=7, day=1)
    # 计算间隔周数,加1得到财周编号(默认周起始为周一)
    days_diff = (date - fiscal_start).days
    return (days_diff // 7) + 1

# 应用到数据集生成财周字段
dataset['Fiscal Week'] = dataset['Date'].apply(get_fiscal_week)

高性能向量化版(适合百万级以上大数据量)

# 批量生成所有日期对应的财年起始日
fiscal_start = pd.to_datetime(
    (dataset['Date'].dt.year - (dataset['Date'].dt.month < 7)).astype(str) + '-07-01'
)
# 批量计算财周
dataset['Fiscal Week'] = ((dataset['Date'] - fiscal_start).dt.days // 7) + 1

验证说明

测试示例:2021年7月1日对应FY22财周1,2021年7月8日对应财周2,2022年6月30日对应财周52(闰年为53),完全匹配你司财年规则。
若公司周统计以周日为起始,可将计算逻辑调整为(days_diff + 1) //7 +1适配规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:54:10