2016-09-11 69 views
0

我试图加入两个数据框,但是在合并两个数据框后,我得到NaN来自其中一个DataFrame(Master)的所有列,但列标题在那里。加入两个大熊猫数据框的日期和

下面是我试过的每个数据帧

b.columns 
Index(['Date', 'Ticker', 'Price'], dtype='object') 

Master.columns 
Index(['Ticker', 'Date', 'Previous Quarter', 'No. Of Shares', 'Action'], dtype='object') 

b.dtypes 
Date  datetime64[ns] 
Ticker   object 
Price   float64 
dtype: object 

Master.dtypes 
Ticker      object 
Date    datetime64[ns] 
Previous Quarter    int64 
No. Of Shares    int64 
Action      object 
dtype: object 

的结构:

M1 = pd.merge(left=b,right=Master, how ='left', left_on=['Date', 'Ticker'], right_on=['Date', 'Ticker']) 
+0

所以你试了一下,然后发生了什么? –

+0

我结束了来自b的数据以及来自主数据的列和标题,但是NaN数据 – ben121

+0

正如我在下面所示,如果您没有右df键列中左df键列的任何完全匹配,则会出现这种情况。作为测试用例,你可以发布几行到你的数据吗? – jlarsch

回答

0

这可能是预期的行为。 您已指定how = 'left'这意味着您只需从左侧数据框寻找组合键。如果在正确的数据框中没有确切的(!)键匹配,您将在连接的表中获取NaN。你可以在这个参数here找到更多信息。

我怀疑你的键列中没有完全匹配吗?

此外,如果您指定left_onright_on是相同的,那么您不妨只指定on