2018/03/11

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


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


  1. import pandas as pd
  2. import os
  3. import re
  4. import openpyxl as opx
  5.  
  6. # tsvの入っているフォルダの名前
  7. folder_name = 'folder'
  8.  
  9. # フォルダのリストを列挙
  10. files =  os.listdir(folder_name)
  11. # 拡張子がtsvのものだけを抜き出す + ファイルのパスを付加
  12. files = [folder_name + x for x in files if re.search(r'\.tsv$', x)]
  13.  
  14. # 出力ファイル名
  15. filename = 'output.xlsx'
  16.  
  17. # エクセルのシートに各ファイルを格納
  18. EXL =pd.ExcelWriter(filename, engine='openpyxl')
  19. for filepath in files:
  20.     sheet = pd.read_csv(filepath, sep='\t')
  21.     sheet.to_excel(EXL, sheet_name=filepath.replace(folder_name, ''), index=False)
  22.  
  23. # 保存
  24. EXL.save()