我正在嘗試搜索csv文件中特定列中的所有行,以查看它們是否包含另一個csv文件中的字符串。如果它們包含該字符串,我想將相應的值寫入另一個特定的列。基於另一個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"
和file2:
Name,Default,Geo Location
DRE UK,,
Production United States,,
Development Hong Kong,,
United Kingdom Sales,,
Florida Marketing,,
我想找到其中來自file2的名稱包含file1中搜索值的字符串行,然後寫在相應的值file1中的位置到file2中的地理位置。所以,結果是這樣的:
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"
我一直在尋找一個答案,我整個loop through rows of one csv file to find corresponding data in another來了。我基於此開始了代碼,但我不知道這是否正確,我被卡住了。
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,我會怎麼做呢?
例子,如果文件2是這樣,而不是,我想也包括非匹配行:
Name,Default,Geo Location
DRE UK,,
Production United States,,
Development Hong Kong,,
United Kingdom Sales,,
Florida Marketing,,
Stuff,,Somewhere
More Stuff,,
您的文件是否已分類?基於代碼的答案假定兩個文件都按同一個鍵排序。這對於過去有效的方法來說是必要的! – llb