2017-08-01 47 views
-1

如何將pandas/python中的數據框中的四列組合起來創建一個唯一的指標並進行左連接?創建一個獨特的指標兩個連接兩個數據集在熊貓/ python

這是甚至是我嘗試完成的最好方法嗎?

example: make a unique indicator (col5) 
then setup a join with another dataframe using the same logic 
col1  col2  col3  col4 col5 
apple pear  mango tea  applepearmangotea 

然後做一個加盟像

pd.merge(df1, df2, how='left', on='col5') 
+2

?您的問題需要更多信息;什麼是輸入和期望輸出的例子? – roganjosh

回答

0

這個問題是一樣的無論是其4列或2。你並不需要創建一個獨特的組合鍵。您只需在多列上輸入merge即可。

考慮兩個數據幀d1d2。它們共享兩列。

d1 = pd.DataFrame([ 
    [0, 0, 'a', 'b'], 
    [0, 1, 'c', 'd'], 
    [1, 0, 'e', 'f'], 
    [1, 1, 'g', 'h'] 
], columns=list('ABCD')) 

d2 = pd.DataFrame([ 
    [0, 0, 'a', 'b'], 
    [0, 1, 'c', 'd'], 
    [1, 0, 'e', 'f'], 
    [2, 0, 'g', 'h'] 
], columns=list('ABEF')) 

d1

A B C D 
0 0 0 a b 
1 0 1 c d 
2 1 0 e f 
3 1 1 g h 

d2

A B E F 
0 0 0 a b 
1 0 1 c d 
2 1 0 e f 
3 2 0 g h 

我們可以加入使用pd.DataFrame.merge

d1.merge(d2, 'left') 

    A B C D E F 
0 0 0 a b a b 
1 0 1 c d c d 
2 1 0 e f e f 
3 1 1 g h NaN NaN 

我們可以執行左相當於是明確用什麼_are_你努力實現列

d1.merge(d2, 'left', on=['A', 'B']) 

    A B C D E F 
0 0 0 a b a b 
1 0 1 c d c d 
2 1 0 e f e f 
3 1 1 g h NaN NaN