Python Pandas concat股票数据返回NaN值



我正在做一个Python Pandas项目,遇到了concat部分。基本上,我已经检索到如下的股票数据

df = data.DataReader(['BAC','C','GS','JPM','MS','WFC'],'morningstar',start,end)

head显示:df.head((

然后我使用pd.concat()将它们连接起来,并使用以下添加列名

bank_stocks = pd.concat([BAC,C,GS,JPM,MS,WF],axis=1,keys=tickers)
bank_stocks.columns.names = ['Bank Ticker','Stock Info']

但当我看到bank_stocks.head()时,我有很多NaN值:

像这个

我需要的是像这个

这可能是一件非常简单的事情,但作为一个新手,我自己无法理解。有人能给我递手吗?非常感谢。

您的concat语句中存在问题。您需要传递希望连接的各个数据帧。根据您的要求,您需要连接每个股票行情器的信息,因此每个股票行情机代表一个需要连接的数据帧。

正确的语法是:pd.concat([df.loc['BAC'],df.loc['C'],df.loc['GS'],df.loc['JPM'],df.loc['MS'],df.loc'WF']],axis=1,keys=tickers)

我相信tickers在您的程序中被定义为包含所有股票代码的列表。

最新更新