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

如何基于ID关联从另一DataFrame获取对应ID的最新Value值

实现方案

核心思路是先从df1中提取每个ID对应最新日期的Value值,再匹配到df2中即可,具体代码和步骤如下:

  • 第一步:将df1的Date列转换为标准日期格式,避免字符串比对出现日期判断错误
import pandas as pd

# 若已经构造好df1、df2可跳过下面的样本数据构造代码
df1 = pd.DataFrame({
    'ID': [9560, 9560, 9712, 9712, 9920],
    'Date': ['07/3/2021', '03/03/2021', '12/15/2021', '08/30/2021', '4/11/2021'],
    'Value': [25, 20, 15, 10, 5]
})
df2 = pd.DataFrame({
    'ID': [9560, 9712, 9920],
    'Value': [None, None, None]
})

# 转换日期格式,匹配月/日/年的输入格式
df1['Date'] = pd.to_datetime(df1['Date'], format='%m/%d/%Y')
  • 第二步:提取每个ID对应最新日期的Value映射关系
# 方案1:先按日期升序排序,分组后取每组最后一个值即为最新值,逻辑直观易读
latest_value_map = df1.sort_values('Date').groupby('ID')['Value'].last()

# 方案2:直接定位每组日期最大的行提取Value,不需要全局排序,数据量大时效率更高
latest_value_map = df1.loc[df1.groupby('ID')['Date'].idxmax()].set_index('ID')['Value']
  • 第三步:将Value值映射填充到df2的对应列
df2['Value'] = df2['ID'].map(latest_value_map)

执行完成后输出df2即可得到你需要的预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:54:04