上周工作中突然接到的需求,没想到挺快就完成了,后来一看是《利用python进行数据分析》那本书里的案例。
环境是mac,用的anaconda3,理论上windows应该没啥太大环境差异。
1.简单来说就是由于年代久远,书里的依赖包需要补充使用。
pip install pandas-datareader
pip install fix_yahoo_finance
2.is_list_like安装包路径变化,由于技术水平有限直接采用is_list_like引用途径改变(pandas.core.common 搬到 pandas.api.types )
参考代码和注释如下:
import datetime
import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
import pandas_datareader.data as yahoo
import fix_yahoo_finance as yf
yf.pdr_override()
from pandas import Series, DataFrame
start = datetime.datetime(2018, 12, 1)//需要的起始日期
end = datetime.date.today()//终止日期
tickers = ['AAPL', 'IBM', 'MSFT', 'GOOGL']//股票参数
all_data = {}
for ticker in tickers:
all_data[ticker] = yahoo.get_data_yahoo(ticker, start, end)
price = DataFrame({tic: data['Adj Close']//需要的数据,这里含有Open,High,Low,Close,Adj Close,Volume
for tic, data in all_data.items()})//原书中为iteritems,python3.5+后为items
volumn = DataFrame({tic: data['Volume']
for tic, data in all_data.items()})
filepath="这里填写你的文件存储路径"
price.to_csv(filepath)