Python Pandas concat股票数据改为返回NaN值

时间:2018-07-18 11:56:44

标签: python pandas concat pandas-datareader

我正在研究一个Python Pandas项目,并陷入了concat部分。 基本上,我已经按照以下方式检索了库存数据

Original {'y': 'XXXX', 'm': '01'}
Updated  {'y': '2018', 'm': '01'}
String   2018-01

head显示如下: df.head()

然后,我使用df = data.DataReader(['BAC','C','GS','JPM','MS','WFC'],'morningstar',start,end) 来加入它们,并使用以下内容添加列名

pd.concat()

但是当我看着bank_stocks = pd.concat([BAC,C,GS,JPM,MS,WF],axis=1,keys=tickers) bank_stocks.columns.names = ['Bank Ticker','Stock Info'] 时,我有很多NaN值:

like this

我需要得到的就像this

这可能很简单,但是作为一个菜鸟,我自己无法弄清楚。 有人可以帮我吗?谢谢。

1 个答案:

答案 0 :(得分:1)

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