NO IMAGE

【Python,csv】Pythonで複数のcsv(xlsx)を一括読み込む

大量のエクセル処理を自動化するためには、複数のcsvファイル(または、xlsxファイル)を読み込むことがあります。ここでは、その方法の一例を紹介します。

サンプルコード

import pandas as pd 
import glob

allFiles = glob.glob("2021/*.csv")   
frame = pd.DataFrame() 

for file_ in allFiles:
    df = pd.read_csv(file_,encoding = 'cp932') 
  frame = pd.concat([frame,df])


frame.to_excel("frame.xlsx", encoding="shift-jis")

2023/2/23 追記
DataFrameの結合に『append』を使うと『FutureWarning』が表示されます。それに伴い、『concat』に変更しました。

globについて

glob.glob(pathname, *, root_dir=None, dir_fd=None, recursive=False)

pathname
ファイルを指定する(相対パス、絶対パスどちらでも可)


読み込みたいファイル形式を指定する。今回の場合、”.csv”とします。
エクセルの場合は、”.xlsx”とします。

他は今回、扱わないため説明は省略します。詳しくは以下、ライブラリ参照してください。
https://docs.python.org/ja/3/library/glob.html

サンプルコードの解説

ステップとしては、以下の通りです。

1.ファイル名を全て読み込む
2.空のデータフレームを作る
3.csvを読み込み、DataFrameに連結させていく

ファイル名を全て読み込む

allFiles = glob.glob("2021/*.csv")

まずは、指定したフォルダー(ここでは”2021”)の内の全てのcsvファイル名を変数(allFiles)に代入します

空のデータフレームを作る

frame = pd.DataFrame() 

空のデータフレーム作っておきます。

csvを読み込み、DataFrameに連結させていく

for file_ in allFiles:
    df = pd.read_csv(file_,encoding = 'cp932') 
    frame = pd.concat([frame,df])

# concatの代わりにappendでも使用できますが、『FutureWarning』で出るので変更しました。
# frame = pd.concat([frame,df])

csvをデータフレームとして読み込み、あらかじめ作っておいたframeにconcatで追加していきます。
これをfor文を使って、繰り返します。

今回、encordingは”cp932″を指定。日本語の場合、”shift-jis”や”utf-8”を用いると良いです。DataFrameで読み込まれていないとエラーになるため、必要に応じて以下のコードを組み込み確認。

print(type(frame))
frame.to_excel("frame.xlsx", encoding="cp932")

最後に、DataFrameとしてまとめたframeをエクセル、またはcsvとしてアウトプットさせます。

まとめ

今回は、エクセルに出力させてますが、アウトプットのさせ方は様々あります。
私の場合、DataFrameのまま計算させて、新しいDataFrameを再構築したり、DataFrameからデータを引っ張ってグラフ化したりしています。

また、ちょっとしたアレンジでクラウドサーバー(AWS s3など)から読み込むことも可能です。
AWS s3からの複数のcsvの読み込みは、下記で紹介していますので、良かったらご覧ください。

プログラミングの勉強に悩んだら、、

icon

プログラミングの勉強に悩んだら、『Udemy』をオススメします。
私自身は、基本的なことは『Udemy』で学びました。具体的な、オススメのポイントは以下の4つです。

オススメのポイント
1.全ての講座がオンライン
  スマホでもパソコンでどこからでも受講できます。
2.リーズナブルな価格で、実用的なスキル
  セール時に購入すれば、2000~3000円程度で受講できる講座もあります。
  また、プロに講師による講座になるため、体系的、かつ実用的に学べます。
3.購入した講座を何度でも見直せる
  プログラミングに暗記は必要ありません。見返せば良いです。
4.プログラミングの講座が豊富
  特にPython流行りであることもあり、非常に豊富です

プログラミング言語の人気オンラインコース 開発の人気オンラインコース

関連記事

csvを読み込むとき、以下の記事で紹介しているパラメーターを使うと綺麗に読み込めることもあるので、こちらも良かったらご覧ください。

こちらでは、実際にpythonを導入して日常業務がどう変化したか、紹介しています。

NO IMAGE
最新情報をチェックしよう!