2017-11-27 1 views
0

私は700のcsvファイルを持っていますが、それぞれに異なる期間の1つのステーションのデータが含まれています。たとえば、2000年から2017年までのデータと、2007年から2017年までのデータがあります。ファイルには、「年」、「月」、「日」という列と、データ用の列があります。重要ではない列が増えています。 2015年から2017年までのデータを表示する行を選択し、それらをすべて1つのcsvにマージする方法。年、月、日(2015年〜2017年)の1つのcsvファイルと、すべての列に1つのステーションのデータが表示される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'の場合、リストインデックスは整数でなければなりません。 "

関連する問題