【python】複数のcsvファイルから指定列のデータをまとめる方法!

 

この記事では、以下の画像のように複数あるcsvファイルから、指定した列のデータを抜き出し、ひとつのcsvファイルに集約させる方法をご紹介していきます。

複数のcsvファイルからデータをまとめる作業の概要図

 

それではさっそくやっていきましょう。

 

スポンサーリンク

使用するcsvデータの確認

今回は使用するデータは以下の画像のように一つにフォルダにまとめられています。

使用するサンプルcsvファイル一覧

 

また、これらのデータの中には以下のようにヘッダーが1行目にあり、それ以降は適当な数値データが入っています。

このヘッダーはすべてのcsvファイルで共通であり、さらに存在するデータの行数もすべて同じです。

使用するサンプルcsvファイルの中身

 

以降で紹介するサンプルコードは、これらの前提をもとに書いています。

もしあなたの状況と違う点があれば、適宜コードを修正していきましょう。

 

それではさっそくやっていきましょう。

 

スポンサーリンク

必要なライブラリ一覧

今回はデータをまとめるにあたって、以下のライブラリを使用します。

〇pandas

〇glob

 

インストールしていない方はまずインストールから進めましょう。

なお、globについてよく知らない人は以下の記事で詳細解説していますので、まずはこちらからご覧いただけると理解が深まるはずです。

【python】フォルダ内ファイルを一括取得!ワイルドカードも使用可!

 

スポンサーリンク

複数のcsvファイルからデータをまとめる方法

それでは前置きはこのくらいにして、冒頭で紹介したような複数のcsvファイルからデータをまとめる方法をご紹介していきます。

 

以下がそのサンプルコードです。

#ライブラリのインポート
import pandas as pd
import glob

#集計するデータを指定
file_list=glob.glob('case*.csv')
colname='data2'

#データをまとめる
datalist=[]
for csvfile in file_list :
    data = pd.read_csv(csvfile)
    datalist.append(data[colname].values)

#まとめデータをテキストに出力
file=open('csv_data.csv', 'w')
for j in range(len(file_list)):
    file.write('case'+str(j+1).zfill(3)+',')
file.write('\n')
for i in range(len(data)):
    for j in range(len(file_list)):
        file.write(str(datalist[j][i])+',')
    file.write('\n')
file.close()

 

※このコードは以下の前提で書いています。

〇読み込むcsvファイルはpythonの実行コードと同じ場所に’case***.csv’という名前で保存されている。

〇その中で集約したいデータのラベルは’data2’とする。

〇集計後のデータはcsv_data.csvという名前で同じフォルダに保存される。

 

スポンサーリンク

サンプルコードの実行結果確認

先ほどのコードを実行すると、pythonの実行ファイルと同じフォルダにcsv_data.csvというファイルができているはずです。

 

中身を確認してみましょう。

〇データ集約後のcsvファイル(csv_data.csv)

サンプルコードの実行結果の確認

これだけ見てもよくわからないので、もとのcsvファイル(case001.csv)をひとつ開いてみましょう。

〇個別のcsvファイル(case001.csv)

サンプルコードの実行結果の確認

 

しっかりとcase001.csvの’data2’ラベルのデータが集約後のcsv_data.csvの一番左に記載されていることがわかります。

⇒問題なく集約できていそうですね。

 

スポンサーリンク

おわりに

というわけで今回は複数のcsvファイルからデータを集約する方法をご紹介しました。

AIに与えるデータの前処理時などにぜひご活用ください。

 

このように、私のブログでは様々なスキルを紹介しています。

過去記事一覧

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました