2017-08-25 57 views
0

我想兩個dataframes組合成一個聯合收割機2 dataframes分享熊貓

DF1

key columnA 
    1 0 
    1 1 
    1 2 

DF2

key columnB 
    1 3 
    1 5 
    1 7 

結果

key columnA columnB 
    1 0  3 
    1 1  5 
    1 2  7 

導致數據幀的同一列列o訂貨信並不重要

編輯:我曾嘗試

pd.merge(df1, df2, on ='key', how = 'inner') 

它給我的

A key B 
    0 1 3 
    0 1 5 
    0 1 7 
    1 1 3 
    1 1 5 
    1 1 7 
    2 1 3 
    2 1 5 
    2 1 7 
+0

的[熊貓結合2個數據幀(合併在一個共同的列)](可能的複製https://stackoverflow.com/questions/18792918/pandas-combining-2-data-frames-join-on-a-common-column) –

+0

@andrew_reece,nope,我檢查了 –

回答

0

因爲key對每一行相同值的DF,你會得到一個最終笛卡爾加入,因爲它不清楚哪個1匹配每個key = 1。相反,與keyindex都匹配。

隨着:

df1 = pd.DataFrame({"key":np.ones(3, dtype=int), "columnA":np.arange(3)}) 
df2 = pd.DataFrame({"key":np.ones(3, dtype=int), "columnB":np.arange(3,9,2)}) 

合併這樣的:

df1.merge(df2, on="key", left_index=True, right_index=True) 
    columnA key columnB 
0  0 1  3 
1  1 1  5 
2  2 1  7 
+0

我明白了,清理了一切,謝謝你! –