如何通过Python结合Pandas匹配TXT与Excel数据并提取对应信息
使用Pandas匹配TXT与Excel数据的实现示例
前提假设
- TXT文件(比如
names.txt)每行存储一个需要匹配的名称,无多余格式; - Excel文件(比如
data.xlsx)包含目标名称列(假设列名为名称),以及其他需要提取的额外数据列(比如年龄、职位)。
实现代码
import pandas as pd # 读取TXT文件,提取名称列表(自动过滤空行) with open('names.txt', 'r', encoding='utf-8') as txt_file: target_names = [line.strip() for line in txt_file if line.strip()] # 读取Excel数据 excel_df = pd.read_excel('data.xlsx') # 筛选出Excel中名称在TXT列表内的行 matched_results = excel_df[excel_df['名称'].isin(target_names)] # 打印匹配结果 print("匹配到的记录:") print(matched_results) # 可选:将结果导出为新Excel文件 matched_results.to_excel('matched_output.xlsx', index=False)
关键细节与优化
- 精确匹配问题:确保TXT中的名称与Excel里的名称完全一致(包括大小写、空格、特殊符号),否则会出现匹配失败。如果需要忽略大小写,可以统一转换后再匹配:
# 统一转为小写处理 target_names = [line.strip().lower() for line in txt_file if line.strip()] matched_results = excel_df[excel_df['名称'].str.lower().isin(target_names)] - 列名适配:如果Excel中的名称列不是
名称,替换为实际列名即可(比如excel_df['姓名'])。 - 编码处理:如果读取文件时出现乱码,调整
encoding参数(比如gbk、utf-8-sig)。 - 大数据量优化:如果Excel文件很大,可以指定
usecols参数只读取需要的列,提升效率:excel_df = pd.read_excel('data.xlsx', usecols=['名称', '年龄', '职位'])
内容的提问来源于stack exchange,提问作者Adam Henry
相关产品推荐
相关产品推荐

