我如何挑选这些列以在熊猫中形成另一个DataFrame?

问题描述 投票:0回答:1

我正在尝试从此行情清单中选择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()
python pandas dataframe finance yahoo
1个回答
1
投票

尝试将您的for循环更改为类似于下面的内容:

for ticker in tickers:
    df = web.DataReader(ticker, 'yahoo', start, end)
    main_df[ticker] = df['Adj Close']
© www.soinside.com 2019 - 2024. All rights reserved.