Kaggle.comから公開データセットをダウンロードするpython
スクリプトを作成したいと思います。
Kaggle APIはPythonで書かれていますが、私が見つけることができるほとんどすべてのドキュメントとリソースは、コマンドラインでのAPIの使用方法に関するものであり、kaggle
内のpython
ライブラリの使用方法に関するものはほとんどありません。
一部のユーザーはこれを行う方法を知っているようです。たとえば、 この質問に対するいくつかの回答 を参照してください。しかし、ヒントは私の特定の問題を解決するのに十分ではありません。
つまり、次のようなスクリプトがあります。
_from kaggle.api.kaggle_api_extended import KaggleApi
api = KaggleApi('content of my json metadata file')
file = api.datasets_download_file(
owner_slug='the-owner-slug',
dataset_slug='the-dataset-slug',
file_name='the-file-name.csv',
)
_
私はメソッドのシグネチャを見てこれを思いついた:api.datasets_download_file(owner_slug, dataset_slug, file_name, **kwargs)
次のエラーが発生します。
_UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 12: invalid start byte
_
この特定の問題の解決策を超えて、コード自体を調べる以外に、Kaggleライブラリでエラーのトラブルシューティングを行う方法を知って本当にうれしいです。実際、この問題はutf-encodingとは何の関係もないかもしれませんが、これを理解する方法がわかりません。ファイル名が間違っているだけの場合、またはこれほどばかげている場合はどうなりますか?
csv
ファイルは特別なものではありません。最初はタイムスタンプで、他の2つは整数です。
ブログ投稿 を公開しました。これは、競合、データセット、カーネルの相互作用の一般的な使用例のほとんどを説明しています。
PythonからKaggleAPIを使用する手順は次のとおりです。
APIキーの設定
Kaggleアカウントタブに移動しますhttps://www.kaggle.com/<username>/account
をクリックし、[APIトークンの作成]をクリックします。 kaggle.jsonという名前のファイルがダウンロードされます。このファイルをMacおよびLinuxの場合は〜/ .kaggle /フォルダーに、Windowsの場合はC:\ Users\.kaggle \に移動します。
または、KAGGLE_USERNAMEおよびKAGGLE_KEY環境変数にkaggle.jsonの値を入力して、APIを認証することもできます。
APIサーバーによる認証
from kaggle.api.kaggle_api_extended import KaggleApi
api = KaggleApi()
api.authenticate()
データセットのダウンロード
# Download all files of a dataset
# Signature: dataset_download_files(dataset, path=None, force=False, quiet=True, unzip=False)
api.dataset_download_files('avenn98/world-of-warcraft-demographics')
# downoad single file
#Signature: dataset_download_file(dataset, file_name, path=None, force=False, quiet=True)
api.dataset_download_file('avenn98/world-of-warcraft-demographics','WoW Demographics.csv')
競争ファイルのダウンロード
# Download all files for a competition
# Signature: competition_download_files(competition, path=None, force=False, quiet=True)
api.competition_download_files('titanic')
# Download single file for a competition
# Signature: competition_download_file(competition, file_name, path=None, force=False, quiet=False)
api.competition_download_file('titanic','gender_submission.csv')
コンテストへの提出
# Signature: competition_submit(file_name, message, competition,quiet=False)
api.competition_submit('gender_submission.csv','API Submission','titanic')
リーダーボードの取得
# Signature: competition_view_leaderboard(id, **kwargs)
leaderboard = api.competition_view_leaderboard('titanic')
Kaggle API の実装を確認できます
しかし、怠け者の場合は、サーバーにkaggle
をインストールするだけですpip install kaggle
。
そして、競争全体をダウンロードするには、Pythonからこれを呼び出すことができます。
import os
os.system('kaggle competitions download -c "dogs-vs-cats-redux-kernels-edition"')
さらに、 docs を確認してください