自分のキャリアをあれこれ考えながら、Pythonで様々なデータを分析していくブログです

Macでkaggleのデータをターミナルからダウンロードできるようにする

Python
Python
ヒノマルク
ヒノマルク

ここまでの記事でデータの読み込みから加工方法まで基本的なところを学べてきたと思います。
今回から様々なデータを使ってデータ分析をしていきたいなと思っています。
分析データの取得元の一つにKaggleというコンペサイトがあります。
APIを使ってデータを取得できるみたいなので、試してみます。

kaggle APIの利用方法は下記より確認できます。

GitHub - Kaggle/kaggle-api: Official Kaggle API
Official Kaggle API. Contribute to Kaggle/kaggle-api development by creating an account on GitHub.

分析のサンプルデータとして有名なTitanic(タイタニック)のデータをダウンロードしpandasに読み込むところまでやろうと思います。

スポンサーリンク

kaggle.jsonをダウンロード

まずはKaggleにユーザー登録をしてあることを前提とします。

  1. https://www.kaggle.com/ユーザー名/account にアクセスします。
    右上のアイコンをクリックし、Accountリンクをクリックでも大丈夫です。

  2. APIセクションから、Create New API Token をクリック

    図: account画面

    トークンを発行することによって、Kaggleのデータセットをダウンロードしたり、参加したコンペにデータ提出などをコマンドラインでできるようになります。

  3. kaggle.jsonファイルがダウンロードされるので、お好きなところに保存します。

    ヒノマルクはデフォルトで/Users/hinomaruc/Downloadフォルダに保存されるようになっています。

スポンサーリンク

kaggle.jsonの配置

公式githubのページの通り、ホームディレクトリ以下に.kaggleフォルダを作成し、kaggle.jsonを配置しました。

他にも環境変数を設定する方法などが紹介されていますので、お好みの方法でAPIトークンを設定します。

ダウンロードしたkaggle.jsonを配置
$ mkdir ~/.kaggle
$ mv ~/Downloads/kaggle.json ~/.kaggle/
$ chmod 600 ~/.kaggle/kaggle.json
スポンサーリンク

kaggleコマンドを使ってコンペのリストやデータを確認

kaggleライブラリをインストール
$ /Users/hinomaruc/Desktop/notebooks/my-venv/bin/python3 -m pip install kaggle
仮想環境に入る
$ source /Users/hinomaruc/Desktop/notebooks/my-venv/bin/activate
kaggleコマンドを実行してみる
(my-venv) $ kaggle
Out[0]
usage: kaggle [-h] [-v] {competitions,c,datasets,d,kernels,k,config} ...
kaggle: error: the following arguments are required: command

kaggleコマンドを認識しているようです。

activateで仮想環境に入らなくても、下記で仮想環境に入ってkaggleコマンドを実行しても動きます。

/Users/hinomaruc/Desktop/notebooks/my-venv/bin/kaggle
Kaggleで提供されているデータセットを確認
(my-venv) $ kaggle competitions list
Out[0]
ref                                            deadline             category            reward  teamCount  userHasEntered  
---------------------------------------------  -------------------  ---------------  ---------  ---------  --------------  
contradictory-my-dear-watson                   2030-07-01 23:59:00  Getting Started     Prizes         64           False  
gan-getting-started                            2030-07-01 23:59:00  Getting Started     Prizes         93           False  
store-sales-time-series-forecasting            2030-06-30 23:59:00  Getting Started  Knowledge        743           False  
tpu-getting-started                            2030-06-03 23:59:00  Getting Started  Knowledge        164           False  
digit-recognizer                               2030-01-01 00:00:00  Getting Started  Knowledge       1891           False  
titanic                                        2030-01-01 00:00:00  Getting Started  Knowledge      13981           False  
house-prices-advanced-regression-techniques    2030-01-01 00:00:00  Getting Started  Knowledge       4438           False  
connectx                                       2030-01-01 00:00:00  Getting Started  Knowledge        204           False  
nlp-getting-started                            2030-01-01 00:00:00  Getting Started  Knowledge        813           False  
spaceship-titanic                              2030-01-01 00:00:00  Getting Started  Knowledge        223           False  
competitive-data-science-predict-future-sales  2022-12-31 23:59:00  Playground           Kudos      13651           False  
herbarium-2022-fgvc9                           2022-05-30 23:59:00  Research         Knowledge         35           False  
birdclef-2022                                  2022-05-24 23:59:00  Research           $10,000        125           False  
h-and-m-personalized-fashion-recommendations   2022-05-09 23:59:00  Featured           $50,000        882           False  
g-research-crypto-forecasting                  2022-05-03 23:59:00  Featured          $125,000       2088           False  
nbme-score-clinical-patient-notes              2022-05-03 23:59:00  Featured           $50,000        492           False  
happy-whale-and-dolphin                        2022-04-18 23:59:00  Research           $25,000        779           False  
ubiquant-market-prediction                     2022-04-18 23:59:00  Featured          $100,000       1793           False  
tabular-playground-series-mar-2022             2022-03-31 23:59:00  Playground            Swag        158           False  
womens-march-mania-2022                        2022-03-18 15:00:00  Featured           $25,000        193           False

今オープン中のコンペデータだけ表示されているみたいです。

下記のActive competitionsで表示されているコンペ一覧でしょうか?

Kaggle Competitions
Kaggle is the world’s largest data science community with powerful tools and resources to help you achieve your data sci...
スポンサーリンク

Titanicコンペのデータセットをダウンロード

Kaggleの中でも非常に有名なタイタニックのデータを見てみます。

図: Titanicコンペの画面

Titanicコンペで提供されているファイルを確認
(my-venv) $ kaggle competitions files titanic
Out[0]
name                   size  creationDate         
---------------------  ----  -------------------  
train.csv              60KB  2018-04-09 05:33:22  
test.csv               28KB  2018-04-09 05:33:22  
gender_submission.csv   3KB  2018-04-09 05:33:22  
Titanicのデータを丸ごとダウンロードする
(my-venv) $ kaggle competitions download -c titanic
Out[0]
Downloading titanic.zip to /Users/hinomaruc/Desktop/notebooks
  0%|          | 0.00/34.1k [00:00<?, ?B/s]
100%|██████████| 34.1k/34.1k [00:00<00:00, 9.27MB/s]
ダウンロードしたファイルを確認
(my-venv) $ ls | grep titanic
Out[0]
titanic.zip

zipファイルでダウンロードが出来ました。

スポンサーリンク

Titanicデータのpandasへの読み込み

zipファイルを解凍して出てきたファイルを読み込んでもいいですが、ここではTitanicコンペの学習データ(train.csv)だけをダウンロードして読み込んでみます。

せっかくなので、仮想環境にactivateで入らない方法でやります。

学習データのダウンロード
hinomaruc:notebooks hinomaruc$ /Users/hinomaruc/Desktop/notebooks/my-venv/bin/kaggle competitions download -f train.csv titanic
Out[0]
Downloading train.csv to /Users/hinomaruc/Desktop/notebooks
  0%|           | 0.00/59.8k [00:00<?, ?B/s]
100%|███████████| 59.8k/59.8k [00:00<00:00, 12.1MB/s]

train.csvがダウンロードできました。

pandasへの読み込み
import pandas as pd
df = pd.read_csv("/Users/hinomaruc/Desktop/notebooks/train.csv")
上から5件を確認
df.head()
Out[0]
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 0 PC 17599 71.2833 C85 C
2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 113803 53.1000 C123 S
4 5 0 3 Allen, Mr. William Henry male 35.0 0 0 373450 8.0500 NaN S

表示できました。

スポンサーリンク

まとめ

Kaggleは世界中の分析者たちがコンペで競い合っていて、分析中のコードも惜しみなくシェアされています。

ヒノマルクは今から9年前(2013年)にユーザー登録していました。

当時から盛り上がっていた記憶があります。

直近のテーマとしては、Kaggleのタイタニックエイムズの住宅価格のデータセットを分析していこうかなと考えています。

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