HiÐΞClassic

CoinGecko APIを使って銘柄ごとのカテゴリを取得する

Hapix
3 years ago
CoinGecko実行環境APIドキュメント各資産のカテゴリ情報を取得する

CoinGecko

暗号資産の価格や情報を網羅的にみることができるwebサイト。2021年12月18日現在登録されている銘柄は11786個とめちゃくちゃ増えてます。なんらか分類したいところです。そこでCoinGeckoのつけているカテゴリ情報があるので、それを取得し、分類してみます。

CoinGecko

実行環境

  • Ubuntu20.04 / WSL2 / Windows 10
  • Python3.8

APIドキュメント

Crypto API Documentation

各資産のカテゴリ情報を取得する

全データはかなり時間かかるのでとりあえず時価総額上位1000データに絞ります。

import time
import pandas as pd
from pycoingecko import CoinGeckoAPI

cg = CoinGeckoAPI()

coins = []
for i in range(10):
    coins += cg.get_coins_markets(vs_currency='usd',page=i+1)
    time.sleep(1.2)

# コインのapi用のidとsymbolを取り出す
ids_1000 = [coin['id'] for coin in coins]
symbols_1000 = [coin['symbol'].upper() for coin in coins]

# category を取得する
categories = cg.get_coins_categories_list()

# コインのカテゴリリストをダウンロードしてデータフレームにする
df = pd.DataFrame(index=[c['category_id'] for c in categories])

for i, symbol_id in enumerate(ids_1000):
    # coinの詳細情報を取得する
    coin_info = cg.get_coin_by_id(symbol_id, localization=False, tickers=False, market_data=False)
    tmp = []
    for c_name in categories:
        if c_name['name'] in coin_info['categories']:
            tmp.append(1)
        else:
            tmp.append(0)
    df[symbol_id] = tmp
    time.sleep(1.3)
    if i%10 == 0:
        print(i/len(ids_1000))

# idはわかりにくいのでsymbolに変更
symbols_1000 = [coin['symbol'].upper() for coin in coins]
df.columns = symbols_1000
# ただsymbolだとマイナーな銘柄がたまに重複するので重複除く
df = df.loc[:,~df.columns.duplicated()]
# 保存する
df.to_pickle('cmc1000_category_feature_df.pkl')

こんな感じで各銘柄のカテゴリを取得できます。


コメント
いいね
投げ銭
最新順
人気順
Hapix
3 years ago
コメント
いいね
投げ銭
最新順
人気順
トピック
アプリ

Astar Network

DFINITY / ICP

NFT

DAO

DeFi

L2

メタバース

BCG

仮想通貨 / クリプト

ブロックチェーン別

プロジェクト

目次
Tweet
ログイン