Python Pandas 连接股票数据 returns NaN 值

Python Pandas concat stock data returns NaN values instead

我正在做一个 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 值:

like this

我需要得到的就像this

可能是很简单的东西,但是我是菜鸟,自己想不出来。 任何人都可以给我手吗?谢谢。

您的 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 在您的程序中被定义为包含所有股票代码的列表。