Pythonでフォルダ内のすべてのCSVファイルを読み込んで並べ替えて1つのファイルに出力する
前提
読み込むCSVファイルはカレントフォルダの「data」フォルダに入っている
出力ファイルはカレントフォルダの「out.csv」
CSVファイルの1行目はタイトル行
並び替えはCSVファイルの1列目の「date」列をキーとして行う
2列目の「id」列をキーとして行う場合は後述
CSVファイルの内容
1.csv
date,id 20220102,1 20220101,3 20220103,5
2.csv
date,id 20220202,6 20220201,4 20220203,2
Pythonのプログラム
import glob import io import csv csv_data = [] row_list = [] for file_path in glob.glob('data/*'): with open(file_path) as file_in: #タイトル行を読み飛ばす header = file_in.readline() #2行目以降を読み込んで、他のファイルのデータと結合する csv_data += csv.reader(io.StringIO(file_in.read())) with open('out.csv', 'w') as file_out: #タイトル行を書き込む file_out.write(header) #データを並べ替えてCSVとして出力する csv.writer(file_out).writerows(sorted(csv_data))
2列目の「id」をキーとして並び替える場合は「sorted」に「key」を追加する
csv.writer(file_out).writerows(sorted(csv_data, key=lambda x: x[1]))
3列目をキーとする場合は、x[2]とする