【Python】複数のCSVファイルを横に結合するコード

スペクトルを自席PCで色々と編集したいので、CSVファイルに変換し、自分のPCにデータを移行してそれをグラフ化するという愚行がある。

測定→特殊な拡張子→名前を付け直してCSVへエクスポート→自席PCへデータ移行→グラフ化
なにこれ?煩わしい。グラフ化の際にCSVファイル数が多いと、何かとミスが起きる。ほとんどがコピペミスかな。
どこまで正しくコピペできているか確認する作業がクソすぎる。

これをどうにかして無くしたい。

自分の場合は、反応が進行しているかピークの強度比率を見るので、
複数のファイルにまたがっていると、見にくくてしゃーない。
そこで、まずは複数のCSVファイルを一つのシートにまとめたいと思ったわけ。

import glob
import pandas as pd
import csv

まずはpandasとかをインポートしてください。

files = glob.glob("*.csv")
#print(files)
output_df = pd.DataFrame() 
for input_file in files:
    #print(input_file)
    output_df = pd.concat([output_df,pd.read_csv(input_file,index_col=[0],parse_dates=[0],encoding="shift-jis")],axis="columns")
    
#print(output_df)
output_df.to_csv('Concat.csv')

このコードを実行すると、ディレクトリ内にある全ての「.csv」が横に結合されていく。
結合後は「Concat.csv」として保存される。

これで複数にまたがることなく、一つのシートに数値がまとまったわけ。

とりあえず、今日はここまで。

以下、参考にしたサイト 

https://www.youtube.com/watch?v=WFDE5H-Kx-k&t=258s

https://www.youtube.com/watch?v=mr-UKlu8R1w

まじで勉強になりました!

今後はグラフ化までを自動化するコード書きます。
あと3段階くらい進化させたら私は満足します。

てか、アプリケーション開発やりたい。
pandasは今後結構使いそうだな。


この記事が気に入ったらサポートをしてみませんか?