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

Pandas如何实现双条件数据集关联 含从日期列提取年份匹配场景

双条件关联实现方案

首先需要先从df的aufdat列提取出可与jahr匹配的年份字段,有两种实现方式:

  • 方式一:转换为日期类型提取(推荐,兼容性更强)
    先把字符串格式的aufdat解析为pandas日期类型,再提取4位年份:
    import pandas as pd
    # 按%d.%m.%y %H:%M格式解析日期,自动处理两位年转4位年
    df['aufdat_jahr'] = pd.to_datetime(df['aufdat'], format='%d.%m.%y %H:%M').dt.year
    
  • 方式二:直接截取字符串子串(性能更高,适合格式固定的场景)
    你的aufdat格式固定为日.月.年 时:分,年份部分固定在第7、8位字符(索引从0开始是6、7位),直接截取后补前缀转整数即可:
    # 截取子串拼接20后转为整数,适合所有2000年后的日期
    df['aufdat_jahr'] = ('20' + df['aufdat'].str.slice(6,8)).astype(int)
    

完成年份字段提取后,直接在merge方法中传入两组关联键即可实现双条件关联,左右关联键的顺序要一一对应:

df_merged = df.merge(
    newDict['second'],
    left_on = ['nrkreis_nr', 'aufdat_jahr'],
    right_on = ['nr', 'jahr'],
    how = 'inner'
)

如果不需要保留中间生成的aufdat_jahr字段,关联后删除即可:

df_merged.drop('aufdat_jahr', axis=1, inplace=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:45:01