目录
一、案例背景
区块链金融作为新兴的金融科技领域,正以其独特的技术优势重塑传统金融格局。区块链的去中心化、不可篡改、透明性和智能合约等特性,为金融行业带来了更高的安全性、效率和信任度。它在支付清算、跨境汇款、证券交易、供应链金融等多个领域都有广泛的应用前景。然而,区块链金融行业也面临着诸多挑战,如技术标准不统一、监管政策不完善、性能瓶颈、安全漏洞等。通过 Python 进行数据分析,可以帮助金融机构、投资者和监管部门更好地了解区块链金融行业的发展现状、趋势和潜在风险,从而做出更明智的决策。
二、代码实现
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import requests
from bs4 import BeautifulSoup
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
from statsmodels.tsa.statespace.sarimax import SARIMAX
2.1 数据收集
数据来源于行业报告网站(如 Gartner、CB Insights)、区块链项目的官方网站、金融数据平台(如 CoinMarketCap)以及政府监管机构的公告。
# 从CoinMarketCap获取比特币价格数据
url = 'https://coinmarketcap.com/currencies/bitcoin/historical-data/'
headers = {
'User - Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table', class_='cmc-table')
rows = table.find_all('tr')
bitcoin_data = []
for row in rows[1:]:
cols = row.find_all('td')
date = cols[0].text.strip()
open_price = float(cols[1].text.strip().replace('$', '').replace(',', ''))
high_price = float(cols[2].text.strip().replace('$', '').replace(',', ''))
low_price = float(cols[3].text.strip().replace('$', '').replace(',', ''))
close_price = float(cols[4].text.strip().replace('$', '').replace(',', ''))
volume = float(cols[5].text.strip().replace('$', '').replace(',', ''))
market_cap = float(cols[6].text.strip().replace('$', '').replace(',', ''))
bitcoin_data.append({
'Date': date,
'Open': open_price,
'High': high_price,
'Low': low_price,
'Close': close_price,
'Volume': volume,
'Market Cap': market_cap
})
bitcoin_df = pd.DataFrame(bitcoin_data)
# 从行业报告网站抓取区块链金融项目融资数据
url_report = 'https://www.cbinsights.com/research/blockchain - finance - funding/'
response_report = requests.get(url_report, headers=headers)
soup_report = BeautifulSoup(response_report.text, 'html.parser')
funding_table = soup_report.find('table', class_='funding - table')
funding_rows = funding_table.find_all('tr')
funding_data = []
for row in funding_rows[1:]:
cols = row.find_all('td')
project_name = cols[0].text.strip()
funding_round = cols[1].text.strip()
amount = float(cols[2].text.strip().replace('$', '').replace(',', ''))
year = int(cols[3].text.strip())
funding_data.append({
'Project Name': project_name,
'Funding Round': funding_round,
'Amount': amount,
'Year': year
})
funding_df = pd.DataFrame(funding_data)
2.2 数据探索性分析
# 查看比特币价格数据基本信息
print(bitcoin_df.info())
# 查看区块链金融项目融资数据基本信息
print(funding_df.info())
# 分析比特币价格走势
bitcoin_df['Date'] = pd.to_datetime(bitcoin_df['Date'])
bitcoin_df.set_index('Date', inplace=True)
plt.fi