如何创建忽略年份、计算全表周数的新SQL列?
生成忽略年份的周数列实现方案
核心思路
提取日期对应的年中周数,忽略年份差异,让不同年份的同一周日期对应相同的周数。
代码实现(以Pandas为例)
假设你的数据表有日期列(命名为date),执行以下步骤:
- 确保日期列是datetime格式
- 提取周数生成新列
import pandas as pd # 读取数据(替换为你的数据读取方式) df = pd.read_csv("your_dataset.csv") # 转换日期列为datetime类型 df["date"] = pd.to_datetime(df["date"]) # 生成忽略年份的周数列(ISO周规则:周一为一周起始,每年第一周至少含4天) df["week_number"] = df["date"].dt.isocalendar().week # 若需以周日为一周起始,可使用(注意:Pandas 1.1+版本推荐用isocalendar,此为兼容写法) # df["week_number"] = df["date"].dt.week
示例效果说明
原日期列包含跨年份数据时,新列统一显示对应周数:
2022-01-02→12023-12-29→522024-01-01→1
内容的提问来源于stack exchange,提问作者Filip
相关产品推荐
相关产品推荐

