如何基于共同Sentences列匹配两个CSV文件并填充Description字段
实现代码
import pandas as pd # 读取文件1,仅保留需要匹配的Sentences列(原Description列为空不需要读取) df1 = pd.read_csv(r'1.csv', usecols=['Sentences']) # 读取文件2,保留Sentences匹配列和对应的Description列 df2 = pd.read_csv(r'2.csv', usecols=['Description', 'Sentences']) # 按Sentences列做内连接,仅保留两边匹配的行,自动关联对应Description df3 = pd.merge(df1, df2, on='Sentences', how='inner') # 输出结果到文件3 df3.to_csv(r'3.csv', index=False, encoding='utf-8-sig') # 打印结果验证 print(df3)
原代码存在的问题
- 读取文件时只保留了
Sentences列,把文件2中需要用到的Description列丢弃了,无法提取对应值 equals方法用于判断两个Series的长度、顺序、所有值完全一致才返回True,你的两个文件Sentences列长度不同、内容也不完全一致,这个判断没有意义- 用
iterrows双重循环遍历匹配效率极低,且i==j的判断逻辑错误,iterrows返回的是(索引, 行数据)的元组,不能直接这样比对 j <> ""是Python2的语法,Python3中已经废弃,统一使用!=做不等判断
内容的提问来源于stack exchange,提问作者user84783
相关产品推荐
相关产品推荐

