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

如何基于重复值与前置记录更新Pandas DataFrame的日期字段

我是第一次在这里提问,本次遇到的问题较为棘手:我有一张记录患者服用特定药物情况的表格,由于患者可一次性购买多盒药品,部分日期存在缺失,因此我基于患者购买的药盒数复制了对应行数,得到如下表格:
image
可以看到本案例中,重复行对应的购药量足够使用两个月。

我需要将日期转换为连续序列,但仅对存在重复日期的行执行操作,避免修改其他患者的原始数据。

我尝试编写了如下for循环:

for index,row in output_table_1.iterrows():
    if index == 0:
        next
    elif output_table_1.loc[index, 'Date'] == output_table_1.loc[index-1, 'Date']:
        output_table_1.at[index, 'Date']  = row['Date'] + pd.Timedelta(days=28)
    else: 
        output_table_1.at[index, 'Date']  = row['Date']

但它无法得到我需要的结果,我需要基于上一行的信息修改当前行的日期,示例如下:

原始数据

序号Date
62017-01-31
72017-01-31
82017-02-28
92017-02-28
102017-03-31
112017-03-31
122017-04-30
132017-04-30

第一次循环后

序号Date
62017-01-31
72017-02-31
82017-02-28
92017-02-28
102017-03-31
112017-03-31
122017-04-30
132017-04-30

第二次循环后

序号Date
62017-01-31
72017-02-31
82017-03-28
92017-02-28
102017-03-31
112017-03-31
122017-04-30
132017-04-30

第三次循环后

序号Date
62017-01-31
72017-02-31
82017-03-28
92017-04-28
102017-03-31
112017-03-31
122017-04-30
132017-04-30

最终预期输出

序号Date
62017-01-31
72017-02-31
82017-03-28
92017-04-28
102017-05-31
112017-06-31
122017-07-30
132017-08-30

以此类推。

内容的提问来源于stack exchange,提问作者João Raposo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:15:08