1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Google Colabで複数ファイルをサクっと統合しよう!

Last updated at Posted at 2022-09-17

はじめに

先日、以下のTweetを見かけました。

現実、分析する前の手間が多いなと感じていますので、本当にそうだな・・・と思いました。

この手間のひとつに データ統合 があります。
例えば、販売実績ファイルが月毎に生成されていたり、生産実績ファイルがロット毎に生成されていたりという場合、ファイルの単位が分析の単位と一致していなければ、データを統合しなければなりません。
この記事では、GoogleColabでファイル統合を実行する方法について触れたいと思います。

実行したこと

  • Google Colabで実行
  • 同じファイルフォーマット(この記事ではcsv)の複数ファイルをフォルダに収めた後、フォルダをGoogleDriveにアップロードし、フォルダ内のcsvファイルを1つのファイルに統合し、保存するというものになります。

複数のcsvファイルを格納したフォルダをGoogleDriveにアップロード

GoogleDriveへのアップロードは、以下のサイトでわかりやすく説明されています。

ファイル統合の実行

フォルダ名称の指定

最初に、統合したいファイルを格納したフォルダの名称を指定します。

フォルダ名指定
#@title Google Colab のマイドライブに保存したフォルダ名を指定

Folder_name = '/content/drive/MyDrive/輸送実績明細(2018-2021)' #@param {type:"raw"}

GoogleColabのセル表示は以下となります。
image.png
GoogleDriveの マイドライブ に格納した📁のパスは、/content/drive/MyDrive/ となります。
上記の例では 📂名称を輸送実績明細(2018-2021) と記述していますが、GoogleDriveにアップロードした📂名称 に書き改めればOKです。

GoogleDriveへのアクセス許可

GoogleColabからGoogleDriveへのアクセス許可
#@title Googleドライブを Google Colab にマウント

from google.colab import drive
drive.mount('/content/drive')

 
上記を実行すると、以下の表示が現れますので、[Googleドライブに接続] をクリックしてください。
83ACE727-854D-4D53-A54D-77A3447F4E5E.jpeg

次にアカウント選択画面が現れますので、アカウントを選択し、リクエストに関する確認も許可してください。
D87B5890-A4D5-4FE1-98C6-5F068614A09C.jpeg
433A1789-8E28-4ABD-8FE5-80FF4C20CBFA.jpeg
 
GoogleDriveにアクセスできれば、以下のようにGoogleColabの画面表示左のファイルに drive が表示されます。MyDrive 内に収めたフォルダもここから確認できます。
92CACCBE-34BD-4263-9ADB-D336384EEA0B.jpeg

フォルダ内のファイルリスト確認

フォルダ内ファイル一覧表示
#@title フォルダ内のファイルリストを表示(マウント時のみ)
import os

path = Folder_name
print(os.listdir(path))

これを実行することにより、フォルダ内のファイルリストが表示されます。

例えば以下です。

['実績明細一覧2018r1.csv', '実績明細一覧2019r1.csv', '実績明細一覧2020r1.csv', '実績明細一覧2021r1.csv']

フォルダ内のファイルの統合

ファイル結合実行⇒保存
#@title ファイル結合 ⇒ 保存(ファイル名はmerged_data.csv)
import pandas as pd
import glob

# csvファイルフォルダのパスと保存パス
path = Folder_name
path_after = '/content/'
  
# パスの末尾にスラッシュ
if path[:-1] != "/":
  path = path + "/"

# csvファイルリスト取得
csv_files = glob.glob(path + '*.csv')

# csvファイルをmerge
merged_file = pd.concat( [ pd.read_csv(c) for c in csv_files ] )
merged_file.to_csv(path_after + 'merged_data.csv', index=False, encoding='utf_8_sig')

print('complete.')

実行すればファイルが統合されます。
統合ファイル merged_data.csv は、GoogleColabの画面表示左のファイルに表示されますので、アクセスすることができます。

統合ファイルをローカルに保存

統合ファイルをローカルに保存
#@title 輸送区分結果 csv出力(☑ =実行)

merged_csv_output = True #@param {type:"boolean"}

#csv出力
if merged_csv_output == True:
  from google.colab import files
  files.download('merged_data.csv')

先の通り、統合ファイル merged_data.csv は、GoogleColabの画面表示左のファイルに保存されますが、ローカルファイルへの保存も実行できるようにしたものです。
☑ で実行しますので、こちらは任意となります。

最後に

上記コードは、GoogleColabのフォームを利用していますので、GoogleColabのセル表示は以下の通り、シンプルです。
手作業よりも圧倒的に楽に実行できます。

統合後も欠損値や異常値を処理したりと、これで終わりというわけではありませんが、これはこれで助かります。
image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?