2014-12-11 5 views
3

Есть ли способ объединить два кадра данных, в то время как один из них продублированы показатели, такие как следующие:слияние кадров данных с дублированными индексами

dataframe A:

 value  
key 
    a 1 
    b 2 
    b 3 
    b 4 
    c 5 
    a 6 

dataframe B:

 number 
    key 
    a  I 
    b  X 
    c  V 

после слияния, я хочу иметь кадр данных, как следующее:

 value  number 
    key 
    a  1   I 
    b  2   X 
    b  3   X 
    b  4   X 
    c  5   V 
    a  6   I 

Или, может быть, есть лучшие способы сделать это с помощью groupby?

ответ

1
>>> a.join(b).sort('value') 
    value number 
key    
a  1  I 
b  2  X 
b  3  X 
b  4  X 
c  5  V 
a  6  I 
1

Использование join:

>>> a = pd.DataFrame(range(1,7), index=list('abbbca'), columns=['value']) 
>>> b = pd.DataFrame(['I', 'X', 'V'], index=list('abc'), columns=['number']) 
>>> a.join(b) 
    value number 
a  1  I 
a  6  I 
b  2  X 
b  3  X 
b  4  X 
c  5  V 
Смежные вопросы