我有一個csv
文件,csv_file.csv
,其中每個狀態有多個記錄,並且狀態用一個id標識。樣本是這樣的:如何將狀態碼從一個csv文件映射到python中另一個csv文件的狀態名稱?
state_id,year,value
01,2012,8.0
01,2012,8.1
01,2012,8.0
01,2012,7.7
01,2013,7.3
01,2013,7.0
01,2013,7.0
我想在上面數據集state_id
轉換成相應的state_name
和記錄寫入到另一個csv
文件,output.csv
,使每個國家的所有value
領域進來一個行和輸出變爲:
Alabama,8.0,8.1,8.0,7.7,7.3,7.0,7.0
Alaska,8.1,8.1,8.0,7.4,7.25,7.6,7.5
換做我還有一個csv
文件,state.csv
映射,與映射的詳細信息:
我寫了這個代碼,但這個似乎只只轉換4條(前4記錄state_id
01
和year
2012
)的csv_file.csv
的,當我打開Output.csv
我只看到4條記錄,並且也爲他們的value
字段重複。我當前的代碼是:
reader_csv = csv.reader(open('csv_file.csv', 'rb'))
reader_state = csv.reader(open('states.csv', 'rb'))
file_write = open('Output.csv', 'a')
writer = csv.writer(file_write)
for line in reader_csv:
for states in reader_state:
if line[0] == states[0]:
print line[0]+'='+states[1]
writer.writerow([states[1]]+[line[1]]+[line[2]])
break
file_write.close()
什麼是我在這裏做了錯誤,我該怎麼做才能改變state_id
到state_name
映射?
讓我們說,一個國家,從第1行csv_file出現5。你當前的代碼也會讀取第1行到第5行的states_csv(儘管你只希望他讀取states_csv的第1行)。你會「放鬆」4個州。我正在編寫解決方案。 – tomasyany