- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章python数据分析近年比特币价格涨幅趋势分布由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
大家好,我是辣条.
曾经有一个真挚的机会,摆在我面前,但是我没有珍惜,等到失去的时候才后悔莫及,尘世间最痛苦的事莫过于此,如果老天可以再给我一个再来一次机会的话,我会买下那个比特币,哪怕付出所有零花钱,如果非要在这个机会加上一个期限的话,我希望是十年前.
看着这份台词是不是很眼熟,我稍稍改了一下,曾经差一点点点就购买比特币了,肠子都悔青了现在,今天对比特币做一个简单的数据分析.
# 安装对应的第三方库!pip install pandas !pip install numpy!pip install seaborn!pip install matplotlib!pip install sklearn!pip install tensorflow
。
1. 数据处理 - pandas 。
2. 科学运算 - numpy 。
3. 数据可视化 - seaborn matplotlib 。
。
1. anaconda 。
2. notebook 。
3. python3.7版本 。
。
#a|T + enter notebook运行方式import pandas as pd # 数据处理import numpy as np # 科学运算import seaborn as sns # 数据可视化import matplotlib.pyplot as plt # 数据可视化import warningsimport warningswarnings.filterwarnings("ignore")
如遇到导包报错 可以看看是不是自己的第三方库的版本问题 。
# 设置图表与 线格式plt.rcParams["figure.figsize"] = (10, 10)plt.rcParams["lines.linewidth"] = 2plt.style.use("ggplot")# 读取数据集df = pd.read_csv("./DOGE-USD.csv")df.head() # 查看前5行
Date | Open | High | Low | Close | Adj Close | Volume | |
---|---|---|---|---|---|---|---|
0 | 2014-09-17 | 0.000293 | 0.000299 | 0.000260 | 0.000268 | 0.000268 | 1463600.0 |
1 | 2014-09-18 | 0.000268 | 0.000325 | 0.000267 | 0.000298 | 0.000298 | 2215910.0 |
2 | 2014-09-19 | 0.000298 | 0.000307 | 0.000275 | 0.000277 | 0.000277 | 883563.0 |
3 | 2014-09-20 | 0.000276 | 0.000310 | 0.000267 | 0.000292 | 0.000292 | 993004.0 |
4 | 2014-09-21 | 0.000293 | 0.000299 | 0.000284 | 0.000288 | 0.000288 | 539140.0 |
df.isnull().sum() # 统计缺失值的总和(sum())Date 0Open 5High 5Low 5Close 5Adj Close 5Volume 5dtype: int64df.duplicated().sum() # 查看重复值0# 数据类型 分布基本情况df.info()<class "pandas.core.frame.DataFrame">RangeIndex: 2591 entries, 0 to 2590Data columns (total 7 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Date 2591 non-null object 1 Open 2586 non-null float64 2 High 2586 non-null float64 3 Low 2586 non-null float64 4 Close 2586 non-null float64 5 Adj Close 2586 non-null float64 6 Volume 2586 non-null float64dtypes: float64(6), object(1)memory usage: 141.8+ KB# 转换 Date的类型df["Date"] = pd.to_datetime(df.Date, dayfirst=True)# 索引重置 让Date时间格式成为 索引 inplace新建对象df.set_index("Date", inplace=True)df
Open | High | Low | Close | Adj Close | Volume | |
---|---|---|---|---|---|---|
Date | ||||||
2014-09-17 | 0.000293 | 0.000299 | 0.000260 | 0.000268 | 0.000268 | 1.463600e+06 |
2014-09-18 | 0.000268 | 0.000325 | 0.000267 | 0.000298 | 0.000298 | 2.215910e+06 |
2014-09-19 | 0.000298 | 0.000307 | 0.000275 | 0.000277 | 0.000277 | 8.835630e+05 |
2014-09-20 | 0.000276 | 0.000310 | 0.000267 | 0.000292 | 0.000292 | 9.930040e+05 |
2014-09-21 | 0.000293 | 0.000299 | 0.000284 | 0.000288 | 0.000288 | 5.391400e+05 |
... | ... | ... | ... | ... | ... | ... |
2021-10-16 | 0.233881 | 0.244447 | 0.233683 | 0.237292 | 0.237292 | 1.541851e+09 |
2021-10-17 | 0.237193 | 0.241973 | 0.226380 | 0.237898 | 0.237898 | 1.397143e+09 |
2021-10-18 | 0.237806 | 0.271394 | 0.237488 | 0.247281 | 0.247281 | 5.003366e+09 |
2021-10-19 | NaN | NaN | NaN | NaN | NaN | NaN |
2021-10-20 | 0.245199 | 0.246838 | 0.242384 | 0.246078 | 0.246078 | 1.187871e+09 |
2591 rows × 6 columns 。
df = df.asfreq("d") # 按照天数采集数据df = df.fillna(method="bfill") # 缺失值填充 下一条数据填充df
Open | High | Low | Close | Adj Close | Volume | |
---|---|---|---|---|---|---|
Date | ||||||
2014-09-17 | 0.000293 | 0.000299 | 0.000260 | 0.000268 | 0.000268 | 1.463600e+06 |
2014-09-18 | 0.000268 | 0.000325 | 0.000267 | 0.000298 | 0.000298 | 2.215910e+06 |
2014-09-19 | 0.000298 | 0.000307 | 0.000275 | 0.000277 | 0.000277 | 8.835630e+05 |
2014-09-20 | 0.000276 | 0.000310 | 0.000267 | 0.000292 | 0.000292 | 9.930040e+05 |
2014-09-21 | 0.000293 | 0.000299 | 0.000284 | 0.000288 | 0.000288 | 5.391400e+05 |
... | ... | ... | ... | ... | ... | ... |
2021-10-16 | 0.233881 | 0.244447 | 0.233683 | 0.237292 | 0.237292 | 1.541851e+09 |
2021-10-17 | 0.237193 | 0.241973 | 0.226380 | 0.237898 | 0.237898 | 1.397143e+09 |
2021-10-18 | 0.237806 | 0.271394 | 0.237488 | 0.247281 | 0.247281 | 5.003366e+09 |
2021-10-19 | 0.245199 | 0.246838 | 0.242384 | 0.246078 | 0.246078 | 1.187871e+09 |
2021-10-20 | 0.245199 | 0.246838 | 0.242384 | 0.246078 | 0.246078 | 1.187871e+09 |
2591 rows × 6 columns 。
In [14]
# 开盘价的分布情况df["Open"].plot(figsize=(12, 8))
结论:从上图可以看出 BTB是在2021年份开始爆发式的增长 在2015 到 2021 一直都是没有较大波动 。
# 成交情况df["Volume"].plot(figsize=(12, 8))
# 投资价值df["Total Pos"] = df.sum(axis=1)df["Total Pos"].plot(figsize=(10, 8))
结论:开盘价高 投资价值搞 比较合适做卖出操作 实现一夜暴富(开玩笑的) 。
# 当前元素与先前元素的相差百分比df["Daily Reture"] = df["Total Pos"].pct_change(1)# 日收益率的平均df["Daily Reture"].mean()df["Daily Reture"].plot(kind="kde")
SR = df["Daily Reture"].mean() / df["Daily Reture"].std()all_plot = df/df.iloc[0]all_plot.plot(figsize=(24, 16))
df.hist(bins=100, figsize=(12, 6))
# 按照年份进行采样df.resample(rule="A").mean()
Open | High | Low | Close | Adj Close | Volume | Total Pos | Daily Reture | |
---|---|---|---|---|---|---|---|---|
Date | ||||||||
2014-12-31 | 0.000249 | 0.000259 | 0.000240 | 0.000248 | 0.000248 | 8.059213e+05 | 8.059213e+05 | 1.028630 |
2015-12-31 | 0.000143 | 0.000147 | 0.000139 | 0.000143 | 0.000143 | 1.685476e+05 | 1.685476e+05 | 0.139461 |
2016-12-31 | 0.000235 | 0.000242 | 0.000229 | 0.000235 | 0.000235 | 2.564834e+05 | 2.564834e+05 | 0.259038 |
2017-12-31 | 0.001576 | 0.001708 | 0.001468 | 0.001601 | 0.001601 | 1.118996e+07 | 1.118996e+07 | 0.225833 |
2018-12-31 | 0.004368 | 0.004577 | 0.004125 | 0.004350 | 0.004350 | 2.172325e+07 | 2.172325e+07 | 0.109586 |
2019-12-31 | 0.002564 | 0.002631 | 0.002499 | 0.002563 | 0.002563 | 4.463969e+07 | 4.463969e+07 | 0.027981 |
2020-12-31 | 0.002736 | 0.002822 | 0.002660 | 0.002744 | 0.002744 | 1.290465e+08 | 1.290465e+08 | 0.052314 |
2021-12-31 | 0.200410 | 0.215775 | 0.185770 | 0.201272 | 0.201272 | 4.620961e+09 | 4.620961e+09 | 0.260782 |
# 年平均收盘价df["Open"].resample("A").mean().plot.bar(title="Yearly Mean Closing Price", color=["#b41f7d"])
# 月度df["Open"].resample("M").mean().plot.bar(figsize=(18, 12), color="red")
# 分别获取对应时间窗口 6 12 2 均值df["6-month-SMA"] = df["Open"].rolling(window=6).mean()df["12-month-SMA"] = df["Open"].rolling(window=12).mean()df["2-month-SMA"] = df["Open"].rolling(window=2).mean()df.head(10)
Open | High | Low | Close | Adj Close | Volume | Total Pos | Daily Reture | 6-month-SMA | 12-month-SMA | 2-month-SMA | |
---|---|---|---|---|---|---|---|---|---|---|---|
Date | |||||||||||
2014-09-17 | 0.000293 | 0.000299 | 0.000260 | 0.000268 | 0.000268 | 1463600.0 | 1.463600e+06 | NaN | NaN | NaN | NaN |
2014-09-18 | 0.000268 | 0.000325 | 0.000267 | 0.000298 | 0.000298 | 2215910.0 | 2.215910e+06 | 0.514013 | NaN | NaN | 0.000281 |
2014-09-19 | 0.000298 | 0.000307 | 0.000275 | 0.000277 | 0.000277 | 883563.0 | 8.835630e+05 | -0.601264 | NaN | NaN | 0.000283 |
2014-09-20 | 0.000276 | 0.000310 | 0.000267 | 0.000292 | 0.000292 | 993004.0 | 9.930040e+05 | 0.123863 | NaN | NaN | 0.000287 |
2014-09-21 | 0.000293 | 0.000299 | 0.000284 | 0.000288 | 0.000288 | 539140.0 | 5.391400e+05 | -0.457062 | NaN | NaN | 0.000285 |
2014-09-22 | 0.000288 | 0.000301 | 0.000285 | 0.000298 | 0.000298 | 620222.0 | 6.202220e+05 | 0.150391 | 0.000286 | NaN | 0.000291 |
2014-09-23 | 0.000298 | 0.000318 | 0.000295 | 0.000313 | 0.000313 | 739197.0 | 7.391970e+05 | 0.191826 | 0.000287 | NaN | 0.000293 |
2014-09-24 | 0.000314 | 0.000353 | 0.000310 | 0.000348 | 0.000348 | 1277840.0 | 1.277840e+06 | 0.728687 | 0.000295 | NaN | 0.000306 |
2014-09-25 | 0.000347 | 0.000383 | 0.000332 | 0.000375 | 0.000375 | 2393610.0 | 2.393610e+06 | 0.873169 | 0.000303 | NaN | 0.000331 |
2014-09-26 | 0.000374 | 0.000467 | 0.000373 | 0.000451 | 0.000451 | 4722610.0 | 4.722610e+06 | 0.973007 | 0.000319 | NaN | 0.000361 |
进行可视化 查看对应分布情况 。
df[["Open", "6-month-SMA", "12-month-SMA", "2-month-SMA"]].plot(figsize=(24, 10))
df[["Open","6-month-SMA"]].plot(figsize=(18,10))
df[["Open","6-month-SMA"]].iloc[:100].plot(figsize=(12,6)).autoscale(axis="x",tight=True)
df["EWMA12"] = df["Open"].ewm(span=14,adjust=True).mean()df[["Open","EWMA12"]].plot(figsize=(24,12))
df[["Open","EWMA12"]].iloc[:50].plot(figsize=(12,6)).autoscale(axis="x",tight=True)
以上就是python数据分析近年比特币价格涨幅趋势分布的详细内容,更多关于python数据分析比特币价格涨幅的资料请关注我其它相关文章! 。
原文链接:https://blog.csdn.net/AI19970205/article/details/121308638 。
最后此篇关于python数据分析近年比特币价格涨幅趋势分布的文章就讲到这里了,如果你想了解更多关于python数据分析近年比特币价格涨幅趋势分布的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 已关闭 9 年前。 Improve
根据其他问题的列表,要构建我需要的原始交易: listunspent - 您可以获得所有未花费交易的列表 您可以决定要花哪些钱 您使用createrawtransaction来创建您的输入/输出,tx
我想查看不在我钱包中的btc地址余额。似乎像 blockchainexplorer 这样的网站会做这类事情。他们还提供 API,但我遇到了他们的 API 使用限制。所以我下载了完整的区 block 链
我的设置:在 Mongoose 模块的帮助下,我们处理所有 Mongo 数据库操作。对于每个新用户,都会生成一个钱包并将其存储在 Mongo 集合中。 方法:如果我们使用User.find({}, f
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我正在尝试建立一个以比特币为中心的网站,并且由于主机的限制,我需要能够执行以下操作,而无需在任何服务器上运行比特币守护程序: 创建一个新的比特币地址(getnewaddress($account))
我目前正在开发一个比特币应用程序,它涉及运行一个完整的比特币节点。 当我测试我的源代码时,我决定使用比特币注册测试模式。 这是我如何启动我的比特币节点: ./bitcoind -regtest -rp
私钥是随机生成的,不与任何钱包关联。 我想为比特币准备公钥生成的自定义(简单)实现。然而,经过几次尝试,我的结果是不正确的。我将它们与在线生成器进行了比较。我发现我使用了除法而不是 modinv。不幸
我是比特币和区 block 链的新手,希望您能帮助我解决一些问题。所以我启动了一个“regtest”网络并使用 生成了 101 个 block bitcoin-cli -regtest generat
当我在我的 bitcoind 服务器上调用 getwork 时,我得到以下信息: ./bitcoind getwork { "midstate" : "695d56ae173bbd0fd5f5
我正在编写一个 JavaScript 函数来返回当前的 BTC/USD 汇率。我做了一些研究,但我只想要一些简单的东西。它不会在服务器端用于计算值(明显的安全隐患),而只是为了方便我的用户。我有 2
我正在使用 Bitrise 生成构建并将其上传到 AppStore。当我在设备上运行应用程序或生成构建并通过 Xcode 上传到 AppStore 时没有出现任何错误,但是当我尝试通过 Bitrise
我目前正在我的 Windows 7 上创建“比特币”。 我已经完成了所有必要的步骤,现在我要进行最后一部分,以获取 .exe 文件。 这是我在 QT 4.8.5 命令提示符中输入的命令 qmake U
以下链接提供有关 BTC 地址的 JSON 数据 -> https://blockchain.info/address/1GA9RVZHuEE8zm4ooMTiqLicfnvymhzRVm?forma
我是一名优秀的程序员,十分优秀!