ここではやや複雑なglob関数を用いら複数ファイルの読み込みについて記載していきます。評価結果のデータ大量になり一つ一つ読み込めないことはよくありますよね。そんな時にはglob関数を用いてやるとうまく処理することができます。
まずは下記コードを参照にしてみて、フォルダ内のデータを取り込んでみてください。
import glob
glob.glob('*.xlsx')
#すべて取り込みたい場合
glob.glob(’*’)
これでフォルダ内にある.xlsxファイルは取り込めたはずです。
これを活用して下記コードを勉強しましょう。
import numpy as np
import pandas as pd
import glob
file_list = glob.glob('*.xlsx')
df = pd.DataFrame()
for file in file_list:
df2 = pd.read_excel(file, parse_dates=True,header=2, index_col=1)
df = pd.concat([df, df2])
# header,indexはPandasコラム参照ください
# CSVを読み込みたい場合は代わりに「pd.read_csv()関数」を使うとよいです
df2取り込んで設定したdfにconcatしていくというコードになっています。そんなに難しくはないと思いますので一度やってみてください。
注意ポイント
取り込みデータは様々だとおもいますが、私が日ごろ扱っているデータは質が悪くNaNが多く含まれているデータがほとんどです。この場合取り込んだデータのNaNをdropna()関数を使って消去しながら集約していくとうまくいくケースがあるので試してみてください。下記コードとなります。
import numpy as np
import pandas as pd
import glob
file_list = glob.glob('*.xlsx')
df = pd.DataFrame()
for file in file_list:
df2 = pd.read_excel(file, parse_dates=True,header=2, index_col=1).dropna(how='all')
df = pd.concat([df, df2])
コメント