OK、Stack Overflow でいくつかのスレッドを読みました。これはかなり簡単にできると思っていましたが、まだ Python についてよく理解していないことがわかりました。2つのcsvファイルを共通の列値と組み合わせる方法にある例を試しましたが、両方のファイルの行数が異なり、それは役に立ちましたが、達成したかった結果はまだありません.
基本的に、共通の最初の列を持つ 2 つの csv ファイルがあります。2をマージしたいと思います.ie
ファイルa.csv
タイトル、ステージ、1月、2月 くそー、3.001、0.421、0.532 わかりました、2.829、1.036、0.751 三、1.115、1.146、2.921
ファイルb.csv
タイトル,3月,4月,5月,6月, くそー、0.631、1.321、0.951、1.751 わかりました,1.001,0.247,2.456,0.3216 3,0.285,1.283,0.924,956
output.csv (私が得ているものではなく、私が欲しいもの)
タイトル、ステージ、1月、2月、3月、4月、5月、6月 くそー、3.001、0.421、0.532、0.631、1.321、0.951、1.751 わかりました,2.829,1.036,0.751,1.001,0.247,2.456,0.3216 3,1.115,1.146,2.921,0.285,1.283,0.924,956
output.csv (実際に出力したもの)
タイトル、2月、5月 わかりました、0.751、2.456 3,2.921,0.924 くそー、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])
どんな助けでも大歓迎です。