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