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

使用Python操作Excel无法遍历整行 实现变量映射下划线拼接需求

Excel匹配拼接变量实现方案

你原有代码存在以下几个核心问题:

  • 循环语法错误:range(len(df1))返回的是单个整数,无法同时赋值给row,col两个变量,会直接抛出解包失败错误
  • 逻辑错误:没有先建立Word到Variable的映射关系,两层循环暴力比对效率极低,也无法处理多词匹配的场景
  • 语法错误:未定义函数就直接使用return关键字,运行会直接报错

正确实现代码如下:

import pandas as pd
import re

# 读取两个Excel文件
file1 = 'C:/Users/madhu/Desktop/Excel1.xlsx'
file2 = 'C:/Users/madhu/Desktop/Book1.xlsx'

df1 = pd.read_excel(file1)
df2 = pd.read_excel(file2)

# 建立Word到Variable的映射字典
word_var_map = dict(zip(df1['Word'], df1['Variable']))

# 按映射key的长度降序排序,保证长短语优先匹配(比如优先匹配"phone number"而不是单独的"phone")
sorted_match_keys = sorted(word_var_map.keys(), key=lambda x: len(x), reverse=True)
# 构建正则匹配模式,自动处理特殊字符
match_pattern = re.compile('|'.join(re.escape(key) for key in sorted_match_keys))

# 定义处理函数:匹配所有对应值后用下划线拼接
def generate_var(word_str):
    matched_items = match_pattern.findall(word_str)
    return '_'.join(word_var_map[item] for item in matched_items)

# 批量处理Excel2的Word列,生成目标结果
df2['Variable Should be'] = df2['Word'].apply(generate_var)

# 打印结果验证
print(df2)
# 结果保存到新的Excel文件,不需要的话可以注释掉
df2.to_excel('C:/Users/madhu/Desktop/匹配结果.xlsx', index=False)

该代码完全匹配你给出的示例预期:

  • user identifier → 匹配到user、identifier 输出 us_id
  • user phone number → 匹配到user、phone number 输出 us_pn
  • identifier number → 匹配到identifier、number 输出 id_num

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:48:03