讲师中心 微信公众号

工具推荐

视频效率加速
AniShort
AniShort

AI短剧协同制作平台

剧云
剧云

中文短剧剧本制作平台

立刻MV
立刻MV

低成本歌曲 MV、视频生成

updream

一键生成高质量推广成片

如何根据起始日期与当前日期之间的周数重复数据行

雨瑶吖_3786

雨瑶吖_3786

发布时间:2026-02-04 21:45:01

|

778人浏览过

|

来源于php中文网

原创

如何根据起始日期与当前日期之间的周数重复数据行

本文介绍如何基于每行记录的日期与当前日期之间的完整周数,对 dataframe 行进行智能重复,并为每一重复行生成对应的 iso 周编号(含跨年处理),避免手动循环和索引错位问题。

在数据分析中,常需将单条时间记录“展开”为按周粒度的多行数据——例如,为每个 ID 生成从其原始日期起、持续至当前周的全部周序列。关键挑战在于:既要准确计算周数差(支持跨年),又要为每行分配正确的 ISO 年份与周号(isocalendar().year 和 .week),而非简单递增数字。

原方法使用 for 循环修改 loc 并依赖 ffill(),存在两大缺陷:

  • ✅ 错误复用全局索引(如 final.loc[i, 'WEEK'] 覆盖非目标行);
  • ❌ 忽略 ISO 周的语义(如 2023-12-24 属于 ISO 第51周,但下一周是2023年第52周或2024年第1周,不可线性+1)。

正确解法应以时间为本体:对每行原始日期,逐周递增7天,再统一提取其 ISO 周信息。以下是推荐实现:

应用程序在线商店宣传网站模板
应用程序在线商店宣传网站模板

应用程序在线商店宣传网站模板是一款提供免费应用程序在线商店宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。

下载
import pandas as pd

# 构建示例数据
df = pd.DataFrame({
    'ID': ['ID001', 'ID002', 'ID003'],
    'DATE': ['24/12/2023', '01/02/2024', '12/02/2024']
})
df['DATE'] = pd.to_datetime(df['DATE'], dayfirst=True)

# 步骤1:计算每行需重复的周数(含起始周)
now = pd.Timestamp('now')
n_weeks = (now.to_period('W') - df['DATE'].dt.to_period('W')).apply(lambda x: x.n)

# 步骤2:按周数重复行(+1 包含起始周本身)
repeated = df.loc[df.index.repeat(n_weeks + 1)].copy()

# 步骤3:为每组重复行添加递增的天数偏移(0, 7, 14, ...),并计算对应ISO周
group_cumcount = repeated.groupby(level=0).cumcount()  # 每组内计数:0,1,2,...
offset_days = group_cumcount * 7
repeated['DATE_WEEK'] = df['DATE'].iloc[repeated.index].values + pd.to_timedelta(offset_days, unit='D')
repeated['YEAR'] = repeated['DATE_WEEK'].dt.isocalendar().year
repeated['WEEK'] = repeated['DATE_WEEK'].dt.isocalendar().week

# 最终结果(保留原始ID、原始DATE用于业务标识,但WEEK基于实际周日期计算)
result = repeated[['ID', 'DATE', 'YEAR', 'WEEK']].reset_index(drop=True)
print(result)
? 关键说明: to_period('W') 将日期转为 ISO 周周期对象,相减直接得整数周差(自动处理跨年、闰周); groupby(level=0).cumcount() 精准获取每组重复行内的序号(0起始),避免索引污染; DATE_WEEK 是逻辑上的“第N周对应的实际日期”,由此派生的 YEAR/WEEK 严格符合 ISO 8601 标准(如2023-12-24所在周为2023-W51,+7天后为2023-W52,+14天后为2024-W01); 输出中 DATE 列保持原始值(便于溯源),YEAR/WEEK 列反映各周的真实归属。

✅ 优势总结:

  • 向量化运算,性能远超显式循环;
  • 完全规避索引操作风险;
  • 原生支持 ISO 周跨年逻辑;
  • 代码简洁,可读性与可维护性高。

此方法适用于销售预测归因、用户活跃周分析、计划排期展开等场景,是时间维度数据展开的标准实践。

热门AI工具

更多
SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
数据分析的方法
数据分析的方法

数据分析的方法有:对比分析法,分组分析法,预测分析法,漏斗分析法,AB测试分析法,象限分析法,公式拆解法,可行域分析法,二八分析法,假设性分析法。php中文网为大家带来了数据分析的相关知识、以及相关文章等内容。

2022

2023.07.04

数据分析方法有哪几种
数据分析方法有哪几种

数据分析方法有:1、描述性统计分析;2、探索性数据分析;3、假设检验;4、回归分析;5、聚类分析。本专题为大家提供数据分析方法的相关的文章、下载、课程内容,供大家免费下载体验。

2870

2023.08.07

网站建设功能有哪些
网站建设功能有哪些

网站建设功能包括信息发布、内容管理、用户管理、搜索引擎优化、网站安全、数据分析、网站推广、响应式设计、社交媒体整合和电子商务等功能。这些功能可以帮助网站管理员创建一个具有吸引力、可用性和商业价值的网站,实现网站的目标。

7650

2023.10.16

数据分析网站推荐
数据分析网站推荐

数据分析网站推荐:1、商业数据分析论坛;2、人大经济论坛-计量经济学与统计区;3、中国统计论坛;4、数据挖掘学习交流论坛;5、数据分析论坛;6、网站数据分析;7、数据分析;8、数据挖掘研究院;9、S-PLUS、R统计论坛。想了解更多数据分析的相关内容,可以阅读本专题下面的文章。

3164

2024.03.13

Python 数据分析处理
Python 数据分析处理

本专题聚焦 Python 在数据分析领域的应用,系统讲解 Pandas、NumPy 的数据清洗、处理、分析与统计方法,并结合数据可视化、销售分析、科研数据处理等实战案例,帮助学员掌握使用 Python 高效进行数据分析与决策支持的核心技能。

4985

2025.09.08

Python 数据分析与可视化
Python 数据分析与可视化

本专题聚焦 Python 在数据分析与可视化领域的核心应用,系统讲解数据清洗、数据统计、Pandas 数据操作、NumPy 数组处理、Matplotlib 与 Seaborn 可视化技巧等内容。通过实战案例(如销售数据分析、用户行为可视化、趋势图与热力图绘制),帮助学习者掌握 从原始数据到可视化报告的完整分析能力。

7732

2025.10.14

Python 数据分析与可视化合集
Python 数据分析与可视化合集

聚焦 Python 在数据分析领域的核心应用,讲解 NumPy 数组运算、Pandas 数据清洗与聚合统计、缺失值与异常值处理、数据透视表生成,以及使用 Matplotlib、Seaborn、Pyecharts 制作折线图、柱状图、热力图、地图等多种可视化图表,适合数据分析师和运营人员快速掌握用 Python 从原始数据中挖掘洞察的能力。

416

2026.04.08

Python数据分析与Pandas高级实战
Python数据分析与Pandas高级实战

本专题围绕 Python 数据分析展开,系统讲解 Pandas 的高级用法,包括数据清洗、透视表、时间序列分析以及多表合并与分组操作。通过实战案例,帮助开发者掌握高效处理与分析数据的方法,提高数据处理效率与分析能力。

871

2026.04.13

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

40

2026.11.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app从入门到实战教程
uni-app从入门到实战教程

共0课时 | 0人学习

uni-app x harmony开发指南
uni-app x harmony开发指南

共0课时 | 0人学习

uni-app鸿蒙运行和发行
uni-app鸿蒙运行和发行

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn