获取规模最大 3 家金融公司的数据
pd.MultiIndex() 对象每行包含多个标识符。这样就可以基于多家公司的条件一次性获取数据。
现在请将这一技能用于获取金融板块中市值最高公司的股价数据。DataReader、date、pandas(导入为 pd)以及 matplotlib.pyplot(导入为 plt)均已导入,上一练习中的 listings DataFrame 也已提供。
本练习是课程的一部分
在 Python 中导入与管理金融数据
练习说明
- 将
listings的索引设为'Stock Symbol',赋值给listings_ss。 - 使用
.loc[]过滤公司行业为'Finance'的行,并提取'Market Capitalization'列。调用.nlargest(),按市值选出最大的 3 家公司并赋值给top_3_companies。 - 将结果的索引转换为列表并赋值给
top_3_tickers。 - 使用
date()将start设为 2015年1月1日。 - 使用
date()将end设为 2020年4月1日。 - 使用
DataReader()从'iex'获取top_3_tickers在start至end之间的股票数据,并赋值给result。 - 调用
.stack()方法,将股票代码移入索引,把DataFrame转换为长表格式。 - 从
data中选择'close',再调用.unstack(),并使用.info()查看现在为宽表格式的结果 DataFrame。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Set Stock Symbol as the index
listings_ss = listings.____
# Get ticker of 3 largest finance companies
top_3_companies = listings_ss.loc[____].____(n=____)
# Convert index to list
top_3_tickers = top_3_companies.____.____()
# Set start date
start = ____
# Set end date
end = ____
# Import stock data
result = ____
# Apply stack method
data = ____
# Unstack and inspect result
data['close'].____().____()