2016-10-06 4 views
1

두 파일의 첫 번째 열을 일치시켜 두 개의 .csv 파일의 데이터를 결합하여 파이썬으로 사전을 만들려고합니다. 이것은 내가 지금까지 가지고있는 것입니다.두 개의 .csv 파일을 결합하여 파이썬으로 사전 만들기

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): 
    ... 
관련 문제