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

pandas如何实现每个唯一标识符在指定日期范围逐行重复

实现方法

你需要的是两个数据集的笛卡尔积(全排列组合),可以用pandas的交叉合并功能实现,完整代码如下:

import pandas as pd

# 你的原有基础代码
id = {'unique':[101,201,301]}
id_df = pd.DataFrame(id)
month = pd.date_range(start = '2020-01-01', end = '2021-1-01', freq='M')

# 新增代码:将日期范围转为DataFrame
month_df = pd.DataFrame(month, columns=['month'])

# 交叉合并得到全组合结果
result = id_df.merge(month_df, how='cross')

执行后result就是符合要求的输出,3个ID × 12个月份,总共36行,每个ID对应每个月单独占一行。

如果你的pandas版本低于1.2.0(不支持how='cross'参数),可以用临时辅助键的方式实现相同效果:

# 给两个DataFrame加相同的临时列
id_df['tmp_key'] = 1
month_df['tmp_key'] = 1

# 按临时列合并后删除临时列
result = id_df.merge(month_df, on='tmp_key').drop('tmp_key', axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 12:48:02