2016-09-11 105 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