2016-10-10 3 views
2

Я хочу выполнить слияние в pandas более чем в одном столбце, где один из столбцов является столбцом индекса.Pandas- как объединить несколько столбцов, включая индекс

Вот пример dataframes:

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'] 

Я хочу, чтобы выполнить внутреннее слияние по индексу и столбец Е, так что он будет возвращать только одну строку: (индекс, E) = (1, 'Привет «).

ответ

2

что об этом?

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 
Смежные вопросы