PythonのpandasでCSVを結合する方法!フォルダのファイルリストで簡単に

お久しぶりです!ピジョンです!

本日はPythonのライブラリpandasを使用してフォルダ内全てのCSVファイルを結合(マージ)する方法を紹介したいと思います。

この方法はデータの読み込みや整理や、機械学習等のためのデータ加工にも便利だと思います。

pandasはデータをデータフレーム形式で扱うことができるライブラリです。

データを扱うのには非常に便利で、慣れるとGUIで操作するより圧倒的にはやいです。表計算ソフトは動作が重くなりがちですしね・・・・

データ処理のために多くの方が使用されているメジャーなデータ処理ライブラリだと思います。

今回はglobというPython標準ライブラリも使用しています。

スポンサーリンク

Pythonでフォルダ内のCSVを全て結合(マージ)する

まず結論として、下記のコードでフォルダ内の全てのCSVファイルを取得することができます。非常に簡単ですね。

実はこのコードは以下の2つのステップによりフォルダ内の全てのCSVを結合しています。

1. フォルダ内のファイル名をリスト型変数で全て取得する
2. リスト型で渡されたファイル名を全てマージする

それぞれのステップについて次に説明していきます。

スポンサーリンク

Python globでフォルダ内のファイル名を全て取得する

1ステップ目、フォルダ内のファイル名をリスト型変数で全て取得する方法について説明します。

Pythonでフォルダ内の対象ファイル名を取得するにはPython標準ライブラリglobを使うと簡単です。上記コードの6行目では拡張子がcsvのファイルの名前を全て取得してリスト型で保持していますね。

*はワイルドカードを表しています。

globの日本語の公式ドキュメントは下記リンク先にあります。日本語版があるのは非常に嬉しいですよね。

Python標準ライブラリ 11.7. glob — Unix 形式のパス名のパターン展開

またソースコードは下記リンク先にあります。時間がある方はこれを読み込んでみても面白いかと思います。

ソースコード: Lib/glob.py

スポンサーリンク

Python PandasでCSVファイルをマージする

最後に2ステップ目、リスト型で渡されたファイル名を全て結合する方法について説明します。
これに関しては上記コードの9~11行目に該当します。

まず、9,10行目でリスト型で取得したcsvファイルをpandasに読み込んでデータフレーム化しています。

その後、全てのデータフレームをconcat()に渡すことでマージしています。

下記リンク先がpandasの公式ドキュメントです。こちらは現状では英語版しかありません。しかし簡単な英語で書かれているので読むことに難はないと思います。

pandas 0.20.3 documentation

  

以上、簡単にpythonでcsvファイルをマージする方法について説明してみました。
なるべくシンプルに書いたのでコードの拡張性は高いと思います。

これからは自分の勉強のためにも少しはエンジニアリングについても投稿していこうと思います!
Pythonについてはまだまだ勉強中なので間違いの指摘やアドバイス等あれば教えていただけると非常に助かります!

それでは今日はこのへんで。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする