2017-08-01 7 views
-1

pandas/pythonのデータフレームで4つの列を結合して一意のインジケータを作成し、左結合を実行するにはどうすればよいですか?独自のインジケータを作成する2 pandas/pythonで2つのデータセットを結合する

これは私が達成しようとしていることを実行する最善の方法ですか?

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する必要があります。

2つのデータフレームd1d2があるとします。彼らは共通の2つの列を共有します。

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 

を使用して参加します列に明示してください

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 
関連する問題