如何在Pandas中获取特征组合首次出现日期并合并至原DataFrame
解决方案
有两种简单的方法可以将分组得到的首次出现日期合并到原DataFrame中:
方法一:使用groupby.transform()直接生成新列
这种方法简洁高效,transform会自动将分组计算的结果广播到原DataFrame的对应行:
# 新增列存储每个(L1, L2, L3)组合的首次出现日期 df['first_occurrence_date'] = df.groupby(['L1', 'L2', 'L3'])['Date'].transform('min')
执行后,原DataFrame会新增first_occurrence_date列,同一(L1, L2, L3)组合的所有行都会显示该组合第一次出现的日期。
方法二:重置索引后合并
如果你更熟悉合并操作,可以先将分组结果转换为普通DataFrame,再通过merge合并:
# 获取分组最小日期并重置索引为普通列 first_dates = df.groupby(['L1', 'L2', 'L3'])['Date'].min().reset_index(name='first_occurrence_date') # 左合并到原DataFrame,保留所有原始行 df = df.merge(first_dates, on=['L1', 'L2', 'L3'], how='left')
这种方法的优势是可以先查看first_dates的结构,再进行合并,适合需要中间校验的场景。
内容的提问来源于stack exchange,提问作者lalaland
相关产品推荐
相关产品推荐

