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

如何用Python基于匹配条件合并两个Excel数据集并添加新列?

解决方案

提取典礼编号中的数字

先从df1的ceremony_number列里提取纯数字,把"1st""2nd"这类格式转成对应整数:

import re
df1['ceremony_num'] = df1['ceremony_number'].apply(lambda x: int(re.search(r'\d+', x).group()))

匹配df2的日期列

方法一:用map快速关联

把df2的index设为索引,直接用提取出的数字列映射对应的日期:

df1['date_oscar'] = df1['ceremony_num'].map(df2.set_index('index')['dates'])

方法二:用merge合并数据

如果更习惯用合并操作,直接按数字列匹配:

df1 = df1.merge(df2, left_on='ceremony_num', right_on='index', how='left')
# 重命名列并清理临时列
df1.rename(columns={'dates': 'date_oscar'}, inplace=True)
df1.drop(columns=['ceremony_num', 'index'], inplace=True)

避免空DataFrame的关键细节

  • 确保df2的index列和提取出的ceremony_num都是整数类型,类型不匹配会导致匹配失败
  • 检查df1的ceremony_number格式是否统一,遇到非标准格式(比如含特殊字符)要先清理
  • 合并时用how='left',保留df1所有原始行,防止因匹配不上丢失数据导致空DataFrame

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 07:26:04