こんばんは!ゼロイチです!
いきなりなんなんだこのテーマはと思われる方も多いと思いますが、
今日仕事で単純作業があり、
今後もあるなら自動化してしまおう!
ということがあったのでそれの共有になります。
実施したこと
①指定フォルダ内にあるエクセルファイルの読み込み
読み込み先はエクセルファイル内の指定された「シート」かつ特定の「列」の時系列データ
②全ファイルの①の情報を横に繋げる
これさえあれば100ファイルも数十秒で終わります!
# 必要なライブラリのインポート
import pandas as pd
import glob #フォルダ内の名前を読み取り
import os
# エクセルファイルが格納されているフォルダを指定
os.chdir('指定のフォルダ')
os.getcwd()
# フォルダ内のファイルを読み込む
list = glob.glob('*.xlsx') #エクセル
# 念の為指定のファイルか確認
for file in list:
print(file)
# 指定の「シート」、読み込む必要のある「列」を指定し、dataリストにデータを追加していく
data = []
for file in list:
df = pd.read_excel(file, sheet_name='シート名', index_col=0, usecols=[指定の列(複数の場合はコンマ区切り)], parse_dates=True) #最後のは時系列データのためTrue
data.append(df)
# 最後にdataリストのデータを横に結合し、csvで保存する。
data2 = pd.concat(data, axis=1)
data2.to_csv('all.csv')