2016-10-10 2 views
2

Ich möchte eine Zusammenführung in Pandas für mehr als eine Spalte, wo eine der Spalten ist eine Index-Spalte.Pandas - wie zu tun Merge auf mehrere Spalten einschließlich Index

Hier sind beispielsweise Datenrahmen:

df1 = pd.DataFrame(np.random.rand(4,4), columns=list('ABCD')) 
    df2 = pd.DataFrame(np.random.rand(4,4), columns=list('EFGH'), index= [5,2,4,1]) 
    df1['E'] = ['hello','hello','hello','world'] 
    df2['E'] = ['world','world','hello','hello'] 

Ich möchte einen inneren merge auf dem Index und der Spalte E durchzuführen, so dass es nur eine Zeile angezeigt werden können: (index, E) = (1, "Hallo ').

Antwort

2

was ist das?

In [82]: pd.merge(df1.reset_index(), df2.reset_index(), on=['index','E']).set_index('index') 
Out[82]: 
       A  B   C   D  E  F   G   H 
index 
1  0.516878 0.56163 0.082839 0.420587 hello 0.62601 0.787371 0.121979 
Verwandte Themen