使用Python DataReader构建新的DataFram

2024-05-16 09:52:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要编写高效的代码,使我的输出(即数据帧)与下面的代码相同。我在考虑使用for循环

开始日期='2019-01-01'

结束日期='2019-06-30'

stock1=pdr.DataReader('MSFT','yahoo',开始日期,结束日期)[['Adj Close']]

stock1.columns=['MSFT']

stock2=pdr.DataReader('HD','yahoo',开始日期,结束日期)[['Adj Close']]

stock2.columns=['HD']

stock3=pdr.DataReader('AMZN','yahoo',开始日期,结束日期)[['Adj Close']]

stock3.columns=['AMZN']

stock4=pdr.DataReader('GOOGL','yahoo',开始日期,结束日期)[['Adj Close']]

stock4.columns=['GOOGL']

stock5=pdr.DataReader('COST','yahoo',开始日期,结束日期)[['Adj Close']]

stock5.列=['COST']

组合=股票1.加入([stock2,stock3,stock4,stock5],how='outer')

投资组合.总目()

这就是我迄今为止所尝试的:

开始日期='2019-01-01'

结束日期='2019-06-30'

对于['MSFT'、'HD'、'AMZN'、'GOOGL'、'COST']中的x:

stock=pdr.DataReader(x, 'yahoo', start_date, end_date)[['Adj Close']]

stock.columns=[x]

portfolio=stock.join(stock,how='outer')

投资组合.总目()

然而,我得到了这个错误:

ValueError:列重叠但未指定后缀:索引(['MSFT'],dtype='object')

有什么想法吗


Tags: columnsclosestockyahoohdmsftdatareadergoogl