狗狗币历史价格走势分析:从2014年到2021年
狗狗币历史价格走势分析:从2014年到2021年
狗狗币(Dogecoin)是世界上用户数量仅次于比特币的第二大虚拟货币。本文利用给定的狗狗币2014年9月17日至2021年3月1日的历史价格表DOGE-USD.csv,对该期间的价格走势进行分析。
1. 数据读取与预处理
import pandas as pd
import matplotlib.pyplot as plt
import math
df = pd.read_csv('DOGE-USD.csv')
print(df.dtypes)
输出结果:
Date object
Open float64
High float64
Low float64
Close float64
Volume float64
dtype: object
可以看出,日期字段并没有自动读取为日期类型,需要进行转换:
df['Date'] = pd.to_datetime(df['Date'])
接下来检查数据中是否存在缺失值,并进行填充:
# 检查缺失值
print(df.isnull().sum())
# 输出缺失值日期
print(df[df.isnull().any(axis=1)]['Date'])
# 前向填充缺失值
df = df.fillna(method='ffill')
输出结果:
Date 0
Open 1
High 1
Low 1
Close 1
Volume 1
dtype: int64
157 2015-04-05
Name: Date, dtype: datetime64[ns]
可以看出,数据中存在1个缺失值,缺失日期为2015-04-05。使用前一交易日的数据进行填充。
2. 价格最高值与最低值
# 输出最高值与最低值及其日期
print('最高价:', df['High'].max(), '日期:', df[df['High'] == df['High'].max()]['Date'].values[0])
print('最低价:', df['Low'].min(), '日期:', df[df['Low'] == df['Low'].min()]['Date'].values[0])
输出结果:
最高价: 0.088104 日期: 2021-02-08T00:00:00.000000000
最低价: 0.000086 日期: 2015-05-06T00:00:00.000000000
3. 价格走势图
# 画出每天最高价格的折线图
plt.plot(df['Date'], df['High'])
plt.xlabel('Date')
plt.ylabel('Highest Price')
plt.title('Dogecoin Daily Highest Price')
plt.show()
4. 成交量走势图
fig, axs = plt.subplots(2, 1, figsize=(12, 8))
# 原始成交量折线图
axs[0].plot(df['Date'], df['Volume'])
axs[0].set_xlabel('Date')
axs[0].set_ylabel('Volume')
axs[0].set_title('Dogecoin Daily Trading Volume')
# 对数成交量折线图
axs[1].plot(df['Date'], df['Volume'].apply(lambda x: math.log10(x)))
axs[1].set_xlabel('Date')
axs[1].set_ylabel('log10(Volume)')
axs[1].set_title('Dogecoin Daily Trading Volume (log10 scale)')
plt.tight_layout()
plt.show()
其中,对数折线图使用了math库中的log10函数,将成交量取对数后进行绘图。
总结
通过以上分析,我们可以了解狗狗币从2014年到2021年的价格走势。需要注意的是,本文仅是对历史数据的分析,不构成投资建议。
代码示例:
import pandas as pd
import matplotlib.pyplot as plt
import math
df = pd.read_csv('DOGE-USD.csv')
df['Date'] = pd.to_datetime(df['Date'])
df = df.fillna(method='ffill')
# 输出最高值与最低值及其日期
print('最高价:', df['High'].max(), '日期:', df[df['High'] == df['High'].max()]['Date'].values[0])
print('最低价:', df['Low'].min(), '日期:', df[df['Low'] == df['Low'].min()]['Date'].values[0])
# 画出每天最高价格的折线图
plt.plot(df['Date'], df['High'])
plt.xlabel('Date')
plt.ylabel('Highest Price')
plt.title('Dogecoin Daily Highest Price')
plt.show()
# 画出成交量的折线图及对数折线图
fig, axs = plt.subplots(2, 1, figsize=(12, 8))
# 原始成交量折线图
axs[0].plot(df['Date'], df['Volume'])
axs[0].set_xlabel('Date')
axs[0].set_ylabel('Volume')
axs[0].set_title('Dogecoin Daily Trading Volume')
# 对数成交量折线图
axs[1].plot(df['Date'], df['Volume'].apply(lambda x: math.log10(x)))
axs[1].set_xlabel('Date')
axs[1].set_ylabel('log10(Volume)')
axs[1].set_title('Dogecoin Daily Trading Volume (log10 scale)')
plt.tight_layout()
plt.show()
原文地址: https://www.cveoy.top/t/topic/oXcy 著作权归作者所有。请勿转载和采集!