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

Excel多工作表列匹配合并及DataFrame实现可行性咨询

需求实现方案

这个需求完全可以实现,不管是直接在Excel中操作,还是将文件转换为DataFrame后用代码处理都能达成目标。以下是两种方案的具体实现步骤:

一、Excel原生操作实现

核心逻辑是通过模糊匹配,从第二个工作表的Animal列中找到与第一个工作表Animal_with_age字段匹配的内容,再调整格式输出:

  1. 预处理第二个工作表:

    • 在Sheet2新增辅助列(比如B列),输入公式处理Animal列内容:
      • 生成匹配用的清理字段:=LOWER(SUBSTITUTE(TRIM(A2), " ", ""))
      • 生成符合要求的输出格式:=IF(ISNUMBER(SEARCH(" ", TRIM(A2))), LOWER(SUBSTITUTE(TRIM(A2), " ", "")), PROPER(TRIM(A2)))
    • 下拉填充公式完成所有行的处理。
  2. 在第一个工作表匹配并填充结果:

    • 在Sheet1新增Animal列(比如B列),输入数组公式(旧版Excel按Ctrl+Shift+Enter执行,新版直接回车):
      =INDEX(Sheet2!$C$2:$C$6, MATCH(TRUE, ISNUMBER(SEARCH(Sheet2!$B$2:$B$6, LOWER(TRIM(A2)))), 0))
      
    • 下拉填充公式,即可得到期望的匹配结果。

二、转换为DataFrame后实现(Python Pandas)

使用Python的Pandas库可以更灵活地处理匹配逻辑,步骤如下:

  1. 读取Excel文件到DataFrame:

    import pandas as pd
    
    # 替换为你的Excel文件路径
    df_age = pd.read_excel('animal_data.xlsx', sheet_name=0)
    df_animal = pd.read_excel('animal_data.xlsx', sheet_name=1)
    
  2. 预处理数据,统一匹配规则:

    # 处理第一个表:清理字段前后空格并转小写,用于匹配
    df_age['clean_age'] = df_age['Animal_with_age'].str.strip().str.lower()
    
    # 处理第二个表:生成匹配用的清理字段,同时生成符合要求的输出格式
    df_animal['clean_animal'] = df_animal['Animal'].str.strip().str.lower().str.replace(' ', '')
    df_animal['output_animal'] = df_animal.apply(
        lambda x: x['Animal'].strip().lower().replace(' ', '') if ' ' in x['Animal'].strip() 
        else x['Animal'].strip().title(),
        axis=1
    )
    
  3. 执行匹配逻辑:

    def find_matching_animal(row):
        # 遍历第二个表的清理后字段,找到匹配的子串
        match = df_animal[df_animal['clean_animal'].apply(lambda s: s in row['clean_age'])]
        return match['output_animal'].values[0] if not match.empty else None
    
    df_age['Animal'] = df_age.apply(find_matching_animal, axis=1)
    
  4. 清理临时字段,输出结果:

    # 移除辅助字段,得到最终结果
    final_df = df_age.drop('clean_age', axis=1)
    print(final_df)
    

执行上述代码后,final_df的结构和内容就会与你期望的输出一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:45:46