
はじめに
一般社団法人データサイエンティスト協会が作成した”データサイエンス100本ノック”という無料の練習問題はデータ分析初心者や入門者に最適なテキストです!!
そこで、Google Colaboratoryを使ってこのテキストを動かす方法を記事にまとめました。
Google Colaboratoryについて詳しく知りたい方は以下のブログ記事をご覧ください。
>>Google Colaboratoryやマウントについて知りたい方はこちらのブログ記事をご覧ください。
>>Google Colaboratoryのショートカットキーについて知りたい方はこちらのブログ記事をご覧ください。
データサイエンティスト協会
データサイエンティスト協会は、2013年5月15日に設立された一般社団法人です。
データサイエンティストに必要となるスキル・知識を定義し、育成のカリキュラム作成、評価制度の構築など、高度IT人材の育成と業界の健全な発展への貢献、啓蒙活動を行っています。
データサイエンス100本ノック(構造化データ加工編)
2020年6月15日にデータサイエンティスト協会からGitHubで公開されました。データサイエンスの初学者が無料でデータの集計・加工(データの前処理)を効率的に学べます。
使用言語はPython、R、SQLです。
制作者いわく、今まで『Kaggle』のような、一定のスキルを持つデータサイエンティストが腕を磨くための学習環境はありましたが、初学者が基礎を学ぶための学習環境はまだまだ少ないのが現状です。
分析にはPythonやRのライブラリがよく使われているところ、これらのライブラリを利用するには、まずデータをライブラリに正しく投入できる形に集計し、加工する必要があります。
データ分析において、実はこのデータ集計・加工が作業の大半を占めています。
その解決策として、『データの集計・加工』に特化した学習コンテンツを作成したとのことです。
Google Colaboratory(グーグル コラボラトリー)でのはじめ方
データサイエンティスト協会の”データサイエンス100本ノック(構造化データ加工編)”は、Docker形式で提供されており、Dockerの環境構築が必要です。
しかし、以下のやり方をすれば、Dockerの環境構築をすることなく気軽に、プログラミング知識がない人でもGoogle Colabで始められます。
1 データサイエンス100本ノックをGoogleドライブに保存する
まず、新規にノートブックを開いてください。開き方は、Googleドライブ上の新規ボタン→その他→Google Colabです。
次に、以下のコードを打つことで、マウントをして、 githubにある”データサイエンス100本ノック”をGoogleドライブ上にダウンロードしてください。
from google.colab import drive
drive.mount('/content/drive')
!git clone https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess.git 'drive/My Drive/100knocks-preprocess'
実行画面は、以下のようになります。
ダウンロードが完了すると、マイドライブの直下に100knocks-preprocessというフォルダが作成されます。これで、データサイエンス100本ノックをGoogleドライブに保存できました。
2 Googleドライブに保存したデータサイエンス100本ノックを開始!
マイドライブ→100knocks-preprocess→docker→workフォルダの中の、preprocess_knock_Python.ipynb をGoogleColabratoryで開いてください。
開き方は、preprocess_knock_Python.ipynbを右クリックして、アプリで開く→GoogleColabratoryです。
開くと、”はじめに”の部分に以下のようなコードが記載されています。
しかし、こちらは実行せずに、削除して、以下の3つのコードに打ち換えてください。
*なお、下記②は上記コードと重複するので、上記のコード中pgconfig 以下を削除でもOKです。
①ドライブをマウントするコード
from google.colab import drive
drive.mount('/content/drive')
②ライブラリーをインポートするコード *なお、上記のpgconfig 以下を削除した方は、このコードは不要です。
import os
import pandas as pd
import numpy as np
from datetime import datetime, date
from dateutil.relativedelta import relativedelta
import math
import psycopg2
from sqlalchemy import create_engine
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from imblearn.under_sampling import RandomUnderSampler
③csvをGoogleドライブから読み込ませるコード
def get_df(filename):
path = 'drive/My Drive/100knocks-preprocess/docker/work/data'
return pd.read_csv(os.path.join(path, filename))
df_customer = get_df('customer.csv')
df_category = get_df('category.csv')
df_geocode = get_df('geocode.csv')
df_product = get_df('product.csv')
df_receipt = get_df('receipt.csv')
df_store = get_df('store.csv')
上記3つの実行画面はこんな感じです。
注:path = ‘drive/My Drive/100knocks-preprocess/docker/work/data’
こちらのシングルコーテーションで囲まれている部分は、データの格納場所です。マイドライブの中で新しくフォルダを作成し、そちらに今回のファイルを格納するなど、違う場所に格納した場合には、そちらのパスに書き換えてください。
【Google Colaboratoryのパスの調べ方】
①左側のファイルのマークをクリック

②該当フォルダの縦の3つの点をクリック。今回は、100knocks-preprocess/docker/work/dataなので、dataの縦の3つの点をクリック

③パスをコピーをクリックして、該当箇所に貼る。

これで準備完了です!!
早速、演習問題やりましょう!!
初心者向けに各問の解説・説明まとめ
データサイエンス100本ノック(構造化データ加工編)ーデータサイエンティスト協会
各問の解説・説明をデータ分析、プログラミングの初心者・初学者でもわかるようにまとめました。 以下のブログ記事をご覧ください。
問1・問2・問3・問4はこちらです。
問5・問6・問7・問8はこちらです。
問9・問10・問11はこちらです。
問12・問13・問14はこちらです。
問15・問16・問17はこちらです。
問18・問19・問20はこちらです。
問21・問22・問23・問24・問25はこちらです。
問26・問27・問28はこちらです。
問29・問30・問31はこちらです。
問32・問33・問34はこちらです。
問35・問36・問37はこちらです。
問38・問39はこちらです。
問40・問41はこちらです。
問42・問43・問44はこちらです。
問45・問46・問47はこちらです。
問48・問49・問50・問51はこちらです。
問52・問53はこちらです。
問54・問55はこちらです。
問56・問57・問58はこちらです。
問59・問60・問61・問62はこちらです。
問63・問64・問65・問66・問67・問68はこちらです
問69・問70はこちらです。
問71・問72・問73・問74はこちらです。
問75・問76・問77・問78はこちらです。
問79・問80・問81・問82・問83はこちらです。
問84はこちらです。
問85・問86はこちらです。
問87・問88・問89はこちらです。
問91・問92・問93はこちらです。
問94・問95・問96・問97・問98・問99・問100はこちらです。
データ分析・データサイエンスを書籍や動画で学びたい方へ
書籍については、以下のブログ記事をまとめていますので、ご興味ありましたらご覧ください。
データサイエンスに興味がある人、データサイエンティストになりたい人、データ分析をこれからはじめる人向けに、学習レベル別にオススメの書籍を紹介しています。
>>【レベル別】データサイエンス・データ分析の本まとめ(Python)
動画については、以下のブログ記事をまとめていますので、ご興味ありましたらご覧ください。
データサイエンスに興味がある人、データサイエンティストになりたい人、データ分析をこれからはじめる人向けに、オススメの動画を紹介しています。
>>【オススメ】データサイエンス・データ分析を学べる動画をまとめました(Python)