2017-11-27 5 views
0

700 개의 csv 파일이 있으며 각 파일에는 서로 다른 기간의 한 스테이션에 대한 데이터가 포함되어 있습니다. 예를 들어 2000 년부터 2017 년까지의 데이터와 2007 년부터 2017 년까지의 데이터가 있습니다. 파일에는 "year", "month"및 "day"열과 데이터 용 열이 있습니다. 중요하지 않은 열이 더 있습니다. 2015에서 2017까지의 데이터를 표시하는 행을 선택하고 모두를 하나의 CSV로 병합 할 수 있습니다. 하나의 CSV 파일에 년, 월, 일 (2015 ~ 2017) 및 모든 열에 한 스테이션의 데이터가 표시되는 700 개의 열이 포함되도록하고 싶습니다. 정말 고마워요.특정 열과 행을 기반으로하는 csv 파일의 일부를 병합합니다.

답변

0

나는이 코드를 사용하는 경우 : 모든 CSV에서

import glob 
import csv 

    csvfiles=glob.glob ('D:/NASA/Data/Public Shared Soil Moisture/crn/*.csv') 
    wf = csv.writer (open('D:/NASA/Data/Public Shared Soil Moisture/crn/Y2015.csv', 'wb'), delimiter=',') 
    for files in csvfiles: 
     print files 
     rd = csv.reader (open(files, 'r'), delimiter = ',') 
     rd.next() 
     for row in rd: 
      wf.writerow (row) 

그것은 복사 모든 데이터를 내가이 사용할 때 :

for files in csvfiles: 
    rd = csv.reader (open(files, 'r'), delimiter = ',') 
    rd.next() 
    for row in rd: 
     if row['year'] == '2015': 
      wf.writerow (row) 

내가 rd.next에 오류가 발생()이 오류를 " TypeError : row [ 'year'] == '2015'인 경우 str이 아닌 "str"이 아닌 정수 목록 인덱스가 정수 여야합니다. "

관련 문제