我正在尝试搜索 csv 文件中特定列中的所有行,以查看它们是否包含另一个 csv 文件中的字符串。如果它们包含该字符串,我想将相应的值写入另一个特定列。
例如文件1:
Search Value,Location
UK,United Kingdom
United Kingdom,United Kingdom
United States,United States
Hong Kong,Hong Kong
Florida,"Florida, United States"
和文件2:
Name,Default,Geo Location
DRE UK,,
Production United States,,
Development Hong Kong,,
United Kingdom Sales,,
Florida Marketing,,
我想查找文件 2 中的名称包含文件 1 中搜索值的字符串的行,然后将文件 1 中位置的相应值写入文件 2 中的地理位置。所以结果是这样的:
Name,Default,Geo Location
DRE UK,,United Kingdom
Production United States,,United States
Development Hong Kong,,Hong Kong
United Kingdom Sales,,United Kingdom
Florida Marketing,,"Florida, United States"
我一直在寻找答案,我遇到了遍历一个 csv 文件的行以在另一个 csv 文件中查找相应数据的情况。我基于此开始了代码,但我不知道这是否是正确的,我被卡住了。
import csv
file1reader = csv.reader(open('file1.csv','rb'))
file2reader = csv.reader(open('file2.csv','rb'))
writer=csv.writer(open('file3.csv','wb'))
header1 = file1reader.next() #header
header2 = file2reader.next() #header
for Search Value, Location in file1reader:
for Name, Default, Geo Location in file2reader:
if Search Value in Name: # found it
提供的数据是我想做的一个例子。实际文件会很大,所以请记住这一点。
任何帮助表示赞赏。
编辑
如果我想在最终输出 (file3.csv) 中包含与条件不匹配的 file2.csv 中的原始行,我该怎么做?
例如,如果 file2 是这样的,我也希望包含不匹配的行:
Name,Default,Geo Location
DRE UK,,
Production United States,,
Development Hong Kong,,
United Kingdom Sales,,
Florida Marketing,,
Stuff,,Somewhere
More Stuff,,