使用pandas yahoo Finance datareader 下载多只股票并将它们放入DataFrame

问题描述

大家好,我想使用 Pandas 从雅虎财经下载多只股票。
但同时我需要只保存每只股票的“调整收盘价”列
此外,我想用所有这些“调整关闭”列创建一个 DataFrame将列名称设置为股票代码

我尝试使用此代码,但被卡住了。

import numpy as np 
import pandas as pd 
from datetime import datetime
import pandas_datareader.data as web

stocks = ['ORCL','TSLA','IBM','YELP','MSFT']
ls_key = 'Adj Close'
start = datetime(2014,1,1)
end = datetime(2015,1)    
f = web.DataReader(stocks,'yahoo',start,end)
f

希望大家帮帮我

解决方法

df = f[[("Adj Close",s) for s in stocks]]
df.columns = df.columns.droplevel(level=0)
df
>>
Symbols          ORCL       TSLA         IBM       YELP       MSFT
Date                                                              
2014-01-02  33.703285  30.020000  137.696884  67.919998  31.983477
2014-01-03  33.613930  29.912001  138.520721  67.660004  31.768301
2014-01-06  33.479893  29.400000  138.045746  71.720001  31.096956
2014-01-07  33.819431  29.872000  140.799240  72.660004  31.337952
2014-01-08  33.703274  30.256001  139.507858  78.419998  30.778502
              ...        ...         ...        ...        ...
2014-12-24  41.679443  44.452000  123.015839  53.000000  42.568497
2014-12-26  41.562233  45.563999  123.411110  52.939999  42.338593
2014-12-29  41.120468  45.141998  122.019974  53.009998  41.958347
2014-12-30  40.877041  44.445999  121.670265  54.240002  41.578117
2014-12-31  40.543465  44.481998  121.966751  54.730000  41.074078