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

如何从pandas DataFrame日期列提取符合固定规则的标准气象周

你之前用到的%V格式化符和isocalendar().week都是ISO周规则,以周一为周起始,且要求每年第一周至少包含4个本年日期,和你固定按7天分段的标准气象周规则不匹配,因此结果不符合需求。

解决方案

你需要的标准气象周是按当年日期固定每7天划分的规则,不需要关联周几,直接通过当年日序计算即可,全矢量化操作适配你600多万行的大数据量,性能远高于自定义遍历或apply方案:

import pandas as pd

# 先将日期列转为datetime类型(如果已经转换可跳过此步)
lulc_gdf['issue_date'] = pd.to_datetime(lulc_gdf['issue_date'])
# 计算每个日期是当年的第几天
day_of_year = lulc_gdf['issue_date'].dt.dayofyear
# 按规则计算标准气象周
lulc_gdf['smw'] = (day_of_year - 1) // 7 + 1

规则匹配验证

计算逻辑完全符合你给出的周划分要求:

  • 1月1日1月7日对应当年第17天:(1-1)//7 +1 = 1,返回第1周
  • 1月8日1月14日对应当年第814天:(8-1)//7 +1 =2,返回第2周
  • 平年12月31日为当年第365天:(365-1)//7 +1 =53,返回第53周
  • 闰年12月31日为当年第366天:(366-1)//7 +1 =53,返回第53周

可选操作

如果需要输出两位字符串格式的周数(如01而非1),可追加以下代码:

lulc_gdf['smw'] = lulc_gdf['smw'].astype(str).str.zfill(2)

内容的提问来源于stack exchange,提问作者Abhilash Singh Chauhan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:57:05