假设我得到了特斯拉和微软的股票市场,我想打印两者的收盘价。
import pandas as pd
import yfinance as yf
start = '2010-01-01'
end = '2020-12-31'
tesla = yf.download('TSLA', start=start, end=end)
microsoft = yf.download('MSFT', start=start, end=end)
我可以轻松地在自己的图上绘制每个图:
microsoft.Close.plot()
或者使用轴在同一个情节上破解它们,但我没有得到图例:
ax = microsoft.Close.plot()
ax = tesla.Close.plot(ax=ax)
或者我可以合并我的两个 DataFrame
# Ugly but elegant...
frames = []
for u in ['microsoft', 'tesla']:
df = globals()[u]
df.columns = pd.MultiIndex.from_arrays([[u] * len(df.columns), list(df.columns.values)])
frames.append(df)
df = pd.merge(*frames, on=["Date"])
df[[('tesla', 'Open'), ('microsoft', 'Open')]].plot()
后一种解决方案似乎更好,因为我只是在绘制我想要的任何内容,但合并过程似乎很麻烦。
还有更好的选择吗?
答案 0 :(得分:1)
您可以直接从yfinance下载两只股票的数据并绘制开放数据
import pandas as pd
import yfinance as yf
start = '2010-01-01'
end = '2020-12-31'
stocks = ['TSLA', 'MSFT']
data = yf.download(stocks, start=start, end=end)
data['Open'].plot()