2018/03/11

複数のcsv/tsvをまとめてひとつのExcelファイルにしたい[python]


複数の分析結果をcsvで出力したりしたものをひとつにまとめたくなったのでメモ。


import pandas as pd
import os
import re
import openpyxl as opx

# tsvの入っているフォルダの名前
folder_name = 'folder'

# フォルダのリストを列挙
files =  os.listdir(folder_name)
# 拡張子がtsvのものだけを抜き出す + ファイルのパスを付加
files = [folder_name + x for x in files if re.search(r'\.tsv$', x)]

# 出力ファイル名
filename = 'output.xlsx'

# エクセルのシートに各ファイルを格納
EXL =pd.ExcelWriter(filename, engine='openpyxl')
for filepath in files:
    sheet = pd.read_csv(filepath, sep='\t')
    sheet.to_excel(EXL, sheet_name=filepath.replace(folder_name, ''), index=False)

# 保存
EXL.save()