OK我已經在堆棧溢出上讀了幾個線程。我認爲這對我來說是相當容易的,但是我發現我對Python的掌握仍然不夠。我嘗試了位於How to combine 2 csv files with common column value, but both files have different number of lines的示例,這很有幫助,但我仍然沒有獲得希望達到的結果。合併2個csv文件
本質上我有2個csv文件與共同的第一列。我想合併2即
filea.csv
title,stage,jan,feb darn,3.001,0.421,0.532 ok,2.829,1.036,0.751 three,1.115,1.146,2.921
fileb.csv
title,mar,apr,may,jun, darn,0.631,1.321,0.951,1.751 ok,1.001,0.247,2.456,0.3216 three,0.285,1.283,0.924,956
output.csv(不是一個我得到,但我想要的東西)
title,stage,jan,feb,mar,apr,may,jun darn,3.001,0.421,0.532,0.631,1.321,0.951,1.751 ok,2.829,1.036,0.751,1.001,0.247,2.456,0.3216 three,1.115,1.146,2.921,0.285,1.283,0.924,956
output.csv(我實際得到的輸出)
title,feb,may ok,0.751,2.456 three,2.921,0.924 darn,0.532,0.951
我試圖代碼:
'''
testing merging of 2 csv files
'''
import csv
import array
import os
with open('Z:\\Desktop\\test\\filea.csv') as f:
r = csv.reader(f, delimiter=',')
dict1 = {row[0]: row[3] for row in r}
with open('Z:\\Desktop\\test\\fileb.csv') as f:
r = csv.reader(f, delimiter=',')
#dict2 = {row[0]: row[3] for row in r}
dict2 = {row[0:3] for row in r}
print str(dict1)
print str(dict2)
keys = set(dict1.keys() + dict2.keys())
with open('Z:\\Desktop\\test\\output.csv', 'wb') as f:
w = csv.writer(f, delimiter=',')
w.writerows([[key, dict1.get(key, "''"), dict2.get(key, "''")] for key in keys])
任何幫助是極大的讚賞。
你可以用一種簡單的方式描述你想要的東西嗎?也許可以這樣說:我想要合併月份列,從文件X中餘下列 – juanpastas 2013-04-28 17:53:29