Kaggle 简介
Kaggle 是一个数据竞赛平台,2010 年创立,2017 年被谷歌收购。平台提供大量开放的数据集和免费的计算资源。只需要注册一个帐号就可以在线编写代码,分析数据。
Big Query 比特币数据集
数据集首页 https://www.kaggle.com/bigque...
目前有 700 多个 Kernels。介绍中说数据持续更新,目前来看更新到 2018 年 9 月。
比特币链上数据大小超过百 GB。在这里是通过 Google Big Query API 访问,而没有任何数据文件。所以这个数据集只能在线使用,而不能下载,但它们提供了数据抽取的代码(https://github.com/blockchain...),所以可以选择自己在本地创建这部分数据。据文档介绍,每个账户每月访问数据的上限是 5 TB。
数据一共有 4 张表:blocks、inputs、outputs、transactions。
一个例子
代码来自这里,有改动(原代码由于库版本变化,无法执行),还略去一些次要内容。
查询每日接收比特币地址数量
from google.cloud import bigquery
import pandas as pd
client = bigquery.Client()
# Query by Allen Day, GooglCloud Developer Advocate (https://medium.com/@allenday)
query = """
#standardSQL
SELECT
o.day,
COUNT(DISTINCT(o.output_key)) AS recipients
FROM (
SELECT
TIMESTAMP_MILLIS((timestamp - MOD(timestamp,
86400000))) AS day,
output.output_pubkey_base58 AS output_key
FROM
`bigquery-public-data.bitcoin_blockchain.transactions`,
UNNEST(outputs) AS output ) AS o
GROUP BY
day
ORDER BY
day
"""
query_job = client.query(query)
iterator = query_job.result(timeout=30)
rows = list(iterator)
# Transform the rows into a nice pandas dataframe
transactions = pd.DataFrame(data=[list(x.values()) for x in rows], columns=list(rows[0].keys()))
# Look at the first 10 headlines
transactions.head(10)
输出:
transactions.tail(10)
输出:
画图
import matplotlib
from matplotlib import pyplot as plt
%matplotlib inline
plt.plot(transactions['day'], transactions['recipients'])
本系列下一篇文章:用 SQL 获取 bigquery 比特币数据 - 使用 Google Big Query API 处理比特币数据(二)
欢迎来我的博客: https://codeplot.top/
我的博客比特币分类
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。