pandas_datareader可用于从Yahoo Finance、FRED等源获取股票和经济数据,安装后通过data.DataReader()调用,支持单只或多只股票及宏观指标如DGS10和CPI,适合与pandas结合进行数据分析。

使用 pandas_datareader 可以方便地从多个金融数据源(如 Yahoo Finance、Google Finance、FRED 等)获取股票、指数、经济指标等数据。以下是基本用法和常见操作。
安装与导入
该库不在 pandas 默认包中,需单独安装:
pip install pandas-datareader导入常用库:
import pandas as pdfrom pandas_datareader import data, wb
获取股票数据(以 Yahoo Finance 为例)
使用 data.DataReader() 方法拉取历史股价:
立即学习“Python免费学习笔记(深入)”;
# 获取苹果公司 (AAPL) 从 2023-01-01 到 2024-01-01 的数据df = data.DataReader("AAPL", "yahoo", "2023-01-01", "2024-01-01")
print(df.head())
返回的 DataFrame 包含 Open、High、Low、Close、Volume、Adj Close 等字段。
一次获取多只股票
传入股票代码列表即可:
symbols = ["AAPL", "GOOGL", "MSFT"]multi_df = data.DataReader(symbols, "yahoo", "2023-01-01", "2024-01-01")
注意:部分数据源对批量请求有限制,Yahoo 是最常用且稳定的选项。
获取经济数据(FRED 示例)
FRED(Federal Reserve Economic Data)提供大量宏观经济指标:
# 获取美国十年期国债收益率treasury_yield = data.DataReader("DGS10", "fred", "2020-01-01", "2024-01-01")
获取 CPI 消费者物价指数
cpi = data.DataReader("CPIAUCSL", "fred", "2020-01-01", "2024-01-01")
FRED 数据适合做经济分析或因子建模。
常见问题与注意事项
目前 Yahoo Finance 已不再需要额外补丁,但偶尔会因网络或接口变动出错。如果报错,可尝试:
- 检查网络连接
- 确认股票代码是否正确(如中国 A 股通常不支持)
- 更换时间范围避免空数据
- 考虑使用 yfinance 库作为替代(功能更强)
基本上就这些。pandas_datareader 适合快速获取标准金融数据,尤其配合 pandas 做数据分析时非常方便。对于更复杂的场景,可以结合 yfinance 或其他 API 使用。











