我正在尝试从此行情清单中选择Adj Close
列到合并的DataFrame中,但我无法到达那里。我觉得我已经很接近了,我只想创建一个脚本,在其中我可以轻松地仅使用要比较的不同DataFrames的列来获得这些合并的DataFrame。
这是代码,我一直只得到一个带有空列的DataFrame。有人可以帮我吗?
import datetime as dt
import pandas as pd
import pandas_datareader as web
start = dt.datetime(2015,1,1)
end = dt.datetime(2020,3,25)
index_df = web.DataReader('PETR4.SA', 'yahoo', start, end)
main_df = pd.DataFrame(index=index_df.index)
tickers = ['PETR4.SA', 'PETR3.SA', 'VALE3.SA', 'GGBR4.SA','^BVSP']
for ticker in tickers:
df = web.DataReader(ticker, 'yahoo', start, end)
df.rename(columns ={'Adj Close':str(ticker)}, inplace=True)
main_df.join(df['{}'.format(ticker)])
main_df.head()
尝试将您的for循环更改为类似于下面的内容:
for ticker in tickers:
df = web.DataReader(ticker, 'yahoo', start, end)
main_df[ticker] = df['Adj Close']