帮我将获得的所有股票数据用python进行行业估值分析并画图
时间: 2023-12-24 20:04:52 浏览: 269
好的,首先需要获取股票数据。你可以用pandas包中的DataReader方法来获取。在这个例子中,我们将使用yfinance作为数据源,获取苹果公司(AAPL)、微软公司(MSFT)、亚马逊公司(AMZN)、Facebook公司(FB)和谷歌母公司Alphabet公司(GOOG)的历史股价数据。
```
import pandas as pd
import yfinance as yf
symbols = ['AAPL', 'MSFT', 'AMZN', 'FB', 'GOOG']
start_date = '2020-01-01'
end_date = '2021-12-31'
data = pd.DataFrame()
for symbol in symbols:
temp = yf.download(symbol, start=start_date, end=end_date)
temp['Symbol'] = symbol
data = pd.concat([data, temp])
data = data.reset_index()
```
接下来,我们需要将数据按照行业分类。在这个例子中,我们将使用Yahoo Finance的行业分类方法。你可以使用pandas包中的groupby方法,将数据按照行业分类,并计算每个行业的平均价格。
```
industries = pd.read_html('https://finance.yahoo.com/sector/ms_technology')[0]
industries = industries.iloc[:, :-1].rename(columns={'Unnamed: 0': 'Symbol'})
industries['Symbol'] = industries['Symbol'].str.strip()
data = pd.merge(data, industries, on='Symbol', how='left')
industry_price = data.groupby('Industry')['Close'].mean().sort_values()
```
最后,我们可以用matplotlib包中的bar方法,将每个行业的平均价格绘制成柱状图。
```
import matplotlib.pyplot as plt
plt.bar(industry_price.index, industry_price.values)
plt.xticks(rotation=90)
plt.ylabel('Average Price')
plt.show()
```
完成以上代码后,你可以得到以下图表:
![行业估值分析图表](https://i.imgur.com/6L8mJWl.png)
阅读全文