Python

【Python】Colaboratoryでデータサイエンス100本ノックを実践

【Python】Colaboratoryでデータサイエンス100本ノックを実践

データ分析の練習コンテンツとして、「データサイエンス100本ノック(構造化データ加工編)」が一般社団法人データサイエンティスト協会から公開されています。
手軽に始めて見たい方向けにColaboratoryで動かす方法を記載していきます。

データサイエンス100本ノック(構造化データ加工編)

データサイエンス100本ノックのデータを準備する

まずは、対象のデータをダウンロードしましょう。

Calabratoryのノートブックを新規で開く

Google Colaboratory

データをGoogleDriveにダウンロードする

下記コードをそのままコピペして実行してください。

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'

以下のように実行結果が表示されると思いますので、「Go to this URL in a browser: URL」をクリックし、Google認証をしてください。

Colaboratory実行結果

認証後、コードが表示されますのでコピーし、「Enter your authorization code:」の入力欄に貼り付けてください。

Google認証_実行結果

その後、自分のGoogle Driveを確認し、「100knocks-preprocess」のフォルダが作成されていればOKです。

ダウンロードしたファイルを確認する

マイドライブからnotebookを開く

GoogleDriveの「マイドライブ > 100knocks-preprocess > docker > work」の「preprocess_knock_Python.ipynb」を開いてみましょう。

GoogleDriveでファイル確認

動作を確認する

そのまま最初のソースを実行してもデータがないためエラーになります。
ダウンロードしたGoogleDriveのデータを取得するために下記コードを追加して実行し、Google認証を実施してください。

GoogleDriveと接続する

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

実行後、エラーなく左のフォルダマークからGoogleDriveデータが確認できたらOKです。

GoogleDriveのデータ取得状況を確認

利用データ(csv)を読み込む

ライブラリ実行と一緒に、データを読み込むために下記コードを実行しましょう。

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')

以上で準備完了です!!

練習問題を実行する

準備が整いましたので、どんどん練習問題を解いていきましょう。
わからない問題があった際には答えがanswerフォルダに入っているので確認してみるといいと思います。

マイドライブ > 100knocks-preprocess > docker > work > answer
「ans_preprocess_knock_Python.ipynb」

まとめ

本記事では、Google Colaboratoryを使ったデータサイエンス100本ノックの実践方法についてまとめてみました。100本ノックを実践することで、実際にPythonで何ができるのかを演習を用いて学ぶことができるのでPythonでの実践経験を積むことができると思います。とりあえず何すればいいかわからない人は、演習をこなしていくのもありだと思いますよ!

ABOUT ME
lusk
EC歴3年、23歳。 通販カート会社に2018年新卒で入社し、エンジニア、プロジェクトマネージャー、新規事業の立ち上げを経験。 仕事を楽しくするためのツール作成や業務改善の仕組みを作ったりしてます。