2014-03-01 3 views
0

내 CSV 파일에 2 개의 데이터 세트를 추가하려고합니다. 아래는 제 코드입니다. 코드는 실행되지만 첫 번째 열 (예 : col [0])의 데이터 집합 아래에 데이터가 추가됩니다. 그러나 파일 끝에 별도의 열에 데이터 세트를 추가하고 싶습니다. 내가 어떻게이 일을 할 수 있을지에 대한 조언을 구할 수 있을까? 감사.CSV 파일에 데이터 추가

import csv 

Trial = open ('Trial_test.csv', 'rt', newline = '') 
reader = csv.reader(Trial) 

Trial_New = open ('Trial_test.csv', 'a', newline = '') 
writer = csv.writer(Trial_New, delimiter = ',') 

Cortex = [] 
Liver = [] 

for col in reader: 
    Cortex_Diff = float(col[14]) 
    Liver_Diff = float(col[17]) 
    Cortex.append(Cortex_Diff) 
    Liver.append(Liver_Diff) 
Avg_diff_Cortex = sum(Cortex)/len(Cortex) 
Data1 = str(Avg_diff_Cortex) 
Avg_diff_Liver = sum(Liver)/len(Liver) 
Data2 = str(Avg_diff_Liver) 
writer.writerows(Data1 + Data2) 


Trial.close() 
Trial_New.close() 
+0

하나의 입력 파일의 모든 행에서이 스크립트는 두 값을 계산합니다. 파일을 별도의 열과 파일 끝에 추가하려면 어떻게합니까? "끝"은 오른쪽 가장자리를 의미합니까? 그러나 원래 파일의'len (Cortex)'줄과 비교해서 단지 두 개의 값이 있습니다 ... 확실히 동일한 파일 이름을 읽고 쓰지 마십시오. – beroe

답변

0

나는 당신이하려는 것을보고 있다고 생각합니다. 나는 당신을 위해 당신의 기능을 완전히 다시 쓰려고하지는 않겠지 만 여기에 팁이있다 : 당신이 다루기 쉬운 크기의 데이터 세트를 다루고 있다고 가정한다면, 전체 CSV를 목록 (또는 튜플 목록)의 목록으로 메모리에 읽어 들이고, 이 객체의 값에 대한 계산을 수행 한 다음 Python 객체를 새로운 CSV에 별도의 코드 블록으로 작성합니다. this article 또는 this one을 사용할 수 있습니다. 당연히 official documentation도 도움이 될 것입니다.

또한 필자는 입력 및 출력을 위해 다른 파일을 사용하여보다 쉽게 ​​작업 할 수있는 방법을 제안합니다. 예를 들어

: 그런

import csv 
data = [] 
with open('Trial_test.csv', 'rb') as csvfile: 
    reader = csv.reader(csvfile, delimiter=' ', quotechar='|') 
    for row in reader: 
     data.append(row) 

# now do your calculations on the 'data' object. 

with open('Trial_test_new.csv', 'wb') as csvfile: 
    writer = csv.writer(csvfile, delimiter=' ', quotechar='|') 
    for row in data: 
     writer.writerow(row) 

뭔가, 어쨌든!

관련 문제