2016-10-06 8 views
1

2つのファイルの最初の列を一致させて、2つの.csvファイルのデータを結合して、Pythonで辞書を作成しようとしています。これは今まで私が持っているものです2つの.csvファイルを組み合わせてPythonで辞書を作成する

import csv 

with open('a.csv', 'r') as my_file1 : 
    rows1 = list(csv.reader(my_file1)) 
with open('aa.csv', 'r') as my_file2 : 
    rows2 = list(csv.reader(my_file2)) 
max_length = min(len(rows1), len(rows2)) 

for i in range(10): 
    new_dict = {} 
    if (rows1[i][0]== rows2[i][0]): 
     temp = {(rows1[i][0], (rows1[i][5], rows1[i][6], rows2[i][5], rows2[i][6])) } 
     new_dict.update(temp) 
print(new_dict) 

私が得た出力は配列の最後のデータエントリです。すべての値を追加するようには見えません。これは、キーと値の完全なリストの代わりに、出力がどのように表示されるかです。

{'2016-09-12': ('1835400', '45.75', '21681500', '9.78')} 

これを修正するにはどうすればいいですか?ありがとう!

答えて

1

forのすべての反復で新しい辞書を作成しているので、最後の反復からの更新のみが保持され、残りは破棄されます。

あなたはfor外の辞書の設定を移動することでこの問題を解決することができます

new_dict = {} 
for i in range(10): 
    ... 
関連する問題