Travis 股票预测实践 - 第 3 章:股票数据获取与处理

前言

大家好!在开始我们的股票分析旅程时,我们必须首先解决一个关键问题:如何获取和处理股票数据。想象一下,我的朋友小李最近想投资股票,但他发现数据杂乱无章,不知道从何入手。为了帮助小李,我们今天就来探讨如何从各种数据源获取股票数据,并使用 Pandas 进行数据清洗和处理,让我们一起踏上这段探索之旅吧!

数据获取

首先,我们需要从不同的数据源获取股票数据。常见的数据源包括 Yahoo Finance、Google Finance 和 Alpha Vantage 等。为了演示,我们将使用 Yahoo Finance 的数据。使用 Python 的 yfinance 库,我们可以轻松下载股票数据。

安装 yfinance 库

1
2
# 安装yfinance库
!pip install yfinance

获取股票数据

1
2
3
4
5
6
7
8
9
10
# 导入所需库
import yfinance as yf
import pandas as pd

# 下载苹果公司(AAPL)的股票数据
ticker = 'AAPL'
stock_data = yf.download(ticker, start='2020-01-01', end='2023-01-01')

# 显示前5行数据
print(stock_data.head())

以上代码下载了苹果公司从 2020 年到 2023 年的股票数据,并展示了前五行数据。

数据处理

获取数据后,我们需要对其进行处理,包括处理缺失值、格式化日期以及其他常见的数据预处理步骤。

处理缺失值

在股票数据中,缺失值可能会影响我们的分析结果。我们可以使用 Pandas 库来处理这些缺失值。

1
2
3
4
5
6
7
8
9
10
11
# 检查缺失值
missing_values = stock_data.isnull().sum()
print("缺失值情况:\n", missing_values)

# 填充缺失值,可以选择填充前一个值或后一个值
stock_data.fillna(method='ffill', inplace=True)
stock_data.fillna(method='bfill', inplace=True)

# 再次检查缺失值
missing_values_after = stock_data.isnull().sum()
print("填充缺失值后:\n", missing_values_after)

以上代码首先检查了数据中的缺失值,然后使用前向填充和后向填充的方法填充了缺失值,最后再次检查确保所有缺失值都已处理。

格式化日期

有时股票数据的日期格式可能不统一,我们需要对日期进行格式化处理。

1
2
3
4
5
6
7
# 将日期列设置为索引
stock_data.reset_index(inplace=True)
stock_data['Date'] = pd.to_datetime(stock_data['Date'])
stock_data.set_index('Date', inplace=True)

# 检查日期格式
print(stock_data.head())

这段代码将日期列设置为索引,并确保日期格式统一。

数据可视化

为了更好地理解股票数据,我们可以进行数据可视化。这里使用 Matplotlib 库绘制股票收盘价的折线图。

1
2
3
4
5
6
7
8
9
10
11
# 导入绘图库
import matplotlib.pyplot as plt

# 绘制股票收盘价折线图
plt.figure(figsize=(14, 7))
plt.plot(stock_data.index, stock_data['Close'], label='Close Price')
plt.title('Stock Close Price Over Time')
plt.xlabel('Date')
plt.ylabel('Close Price (USD)')
plt.legend()
plt.show()

这段代码绘制了股票收盘价随时间变化的折线图,帮助我们直观地了解股票价格的走势。

结论

通过本章的学习,我们掌握了如何从数据源获取股票数据,并使用 Pandas 进行数据处理。我们学习了处理缺失值和格式化日期的基本方法,还了解了如何进行数据可视化。希望这些知识能帮助你更好地进行股票分析。下一章,我们将深入探讨如何使用这些数据进行选股和评估。敬请期待!

记得关注我的专栏并收藏这篇文章,更多精彩内容即将呈现!我们下一章再见!