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

如何按分组获取指定变量特定值对应的最新日期并生成新列

实现方案

以下提供3种主流工具的实现方式:

1. Python Pandas 实现

先将日期列转换为日期类型方便比较,再按ID分组计算每组内Dummy为1的最大日期映射回原表:

import pandas as pd

# 转换日期格式
df['Date'] = pd.to_datetime(df['Date'], format='%m/%d/%Y')

# 分组计算Latest列
df['Latest'] = df.groupby('ID')['Date'].transform(
    lambda x: x[df.loc[x.index, 'Dummy'] == 1].max()
# 按需转回原字符串格式,不需要可以删掉这行
).dt.strftime('%-m/%-d/%Y')

2. SQL 实现

用窗口函数按ID分区,取分区内Dummy为1的最大日期:

SELECT 
    Date,
    ID,
    Dummy,
    MAX(CASE WHEN Dummy = 1 THEN Date END) OVER(PARTITION BY ID) AS Latest
FROM 你的表名

如果日期存储为字符串格式,先转为日期类型计算后再转回对应格式即可。

3. Excel 实现

假设数据从第2行开始,A列为Date、B列为ID、C列为Dummy,在D2单元格输入以下公式:

=MAX(IF(($B$2:$B$13=B2)*($C$2:$C$13=1),$A$2:$A$13,""))
  • 2019及更早版本:输入完按Ctrl+Shift+Enter触发数组计算
  • 365/2021及以上版本:直接回车即可
    输入后下拉填充所有行,将D列单元格格式设置为日期格式即可得到需要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:27:03