web-dev-qa-db-ja.com

Python内のKaggleAPIのドキュメント?

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つは整数です。

8
Antoine

ブログ投稿 を公開しました。これは、競合、データセット、カーネルの相互作用の一般的な使用例のほとんどを説明しています。

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')
5
Jose Cherian

Kaggle API の実装を確認できます

しかし、怠け者の場合は、サーバーにkaggleをインストールするだけですpip install kaggle

そして、競争全体をダウンロードするには、Pythonからこれを呼び出すことができます。

import os
os.system('kaggle competitions download -c "dogs-vs-cats-redux-kernels-edition"')

さらに、 docs を確認してください

0
prosti