用于加密货币的Python - 数据结构

时间:2018-05-24 20:15:55

标签: python pandas jupyter-notebook

我在Jupyter中有以下代码注意我想刮掉CoinMarketCap网站:

     url = 'https://coinmarketcap.com/all/views/all/'
     df=pd.read_html(url, header=None)
     df[0]

输出曾经是一个pandas数据帧但是现在它是1623行×11列的列表,当我尝试时:

     df_crypto = pd.DataFrame(df)

它只返回列名。那么,任何想法?

2 个答案:

答案 0 :(得分:1)

如果您想收集此资产数据,我建议您使用CoinMarketCap Api。目前,您正在抓取HTML页面并收集大量过多的,无关紧要的信息。

我建议你做以下事情:

import requests 

r = requests.get('https://api.coinmarketcap.com/v2/ticker/')
x = r.json()

然后,您可以将此字典转换为pandas数据帧

答案 1 :(得分:0)

直接来自pandas.read_html

的文档
  

返回:dfs: DataFrames列表

您需要访问列表中所需的索引(在本例中为第一个索引),并删除未命名的列。

<强> 实施例

df = pd.read_html(url)
df = df[0].loc[:, ~df[0].columns.str.contains('^Unnamed')]
df.head(2)

# Result

   #          Name Symbol        Market Cap     Price Circulating Supply  \
0  1   BTC Bitcoin    BTC  $129,198,417,887  $7576.52           17052475
1  2  ETH Ethereum    ETH   $59,151,386,138   $593.64           99642183

     Volume (24h)    % 1h   % 24h     % 7d
0  $6,196,160,000  -0.40%  -0.32%   -7.55%
1  $2,861,120,000  -0.22%   0.31%  -13.54%