Python将返回NaN值
我在一个Python熊猫项目上工作,被concat部分卡住了。 基本上,我检索到的股票数据如下Python将返回NaN值,python,pandas,concat,pandas-datareader,Python,Pandas,Concat,Pandas Datareader,我在一个Python熊猫项目上工作,被concat部分卡住了。 基本上,我检索到的股票数据如下 df = data.DataReader(['BAC','C','GS','JPM','MS','WFC'],'morningstar',start,end) bank_stocks = pd.concat([BAC,C,GS,JPM,MS,WF],axis=1,keys=tickers) bank_stocks.columns.names = ['Bank Ticker','Stock Info'
df = data.DataReader(['BAC','C','GS','JPM','MS','WFC'],'morningstar',start,end)
bank_stocks = pd.concat([BAC,C,GS,JPM,MS,WF],axis=1,keys=tickers)
bank_stocks.columns.names = ['Bank Ticker','Stock Info']
头部显示:
然后我使用pd.concat()
将它们连接起来,并使用以下内容添加列名
df = data.DataReader(['BAC','C','GS','JPM','MS','WFC'],'morningstar',start,end)
bank_stocks = pd.concat([BAC,C,GS,JPM,MS,WF],axis=1,keys=tickers)
bank_stocks.columns.names = ['Bank Ticker','Stock Info']
但是当我看bank\u stocks.head()
时,我有很多NaN值:
我需要的是
这可能很简单,但作为一名菜鸟,我自己无法理解。
有人能帮我吗?谢谢。您的concat声明有问题。您需要传递希望连接的各个数据帧。根据您的要求,您需要连接每个ticker的信息,因此每个ticker表示需要连接的数据帧 正确的语法是:
pd.concat([df.loc['BAC'],df.loc['C'],df.loc['GS'],df.loc['JPM'],df.loc['MS'],df.loc'WF']],轴=1,键=tickers)
我相信
ticker
在您的程序中定义为包含所有ticker符号的列表 尝试从索引中删除符号-同时发布问题中的数据而不是图片。从df.head()中提取df并取消堆栈级别0,然后将这些数据帧放在一起。