この記事では、以下の画像のように複数あるcsvファイルから、指定した列のデータを抜き出し、ひとつのcsvファイルに集約させる方法をご紹介していきます。
それではさっそくやっていきましょう。
使用するcsvデータの確認
今回は使用するデータは以下の画像のように一つにフォルダにまとめられています。
また、これらのデータの中には以下のようにヘッダーが1行目にあり、それ以降は適当な数値データが入っています。
このヘッダーはすべての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に与えるデータの前処理時などにぜひご活用ください。
このように、私のブログでは様々なスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村
それではまた!
Follow @HigashiSalary
コメント