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

如何在pandas DataFrame中按门店分组创建符合条件的滞后特征

解决方案

分两种场景实现需求:

方案1:生成滞后特征时从根源避免跨门店串值(更推荐)

不需要先做全局shift再修正,直接按store_id分组后做滞后操作,分组下第一条数据的滞后值会自动变为NaN,直接填充0就刚好符合需求:

# 按门店分组后做1步滞后,缺失值填充为0
df1['Data_lagged'] = df1.groupby('store_id')['units_sold'].shift(1).fillna(0)

注意:执行该操作前请确保数据已经按「门店+时间维度」升序排序,否则滞后顺序会出错,排序参考代码:

df1 = df1.sort_values(by=['store_id', '你实际的时间字段名'], ignore_index=True)

方案2:对已生成的全局滞后结果做修正

如果已经提前生成了全局shift的Data_lagged字段,只需要定位到门店切换的行,把对应滞后值置0即可:

# 找到当前行store_id和上一行不一致的记录,将对应Data_lagged设为0
df1.loc[df1['store_id'] != df1['store_id'].shift(1), 'Data_lagged'] = 0

运行后你给出的样例中索引为32的行Data_lagged会自动变为0,其他行的滞后值不受影响,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 23:45:05