2015-01-17 3 views
1

У меня есть две панды Dataframes df1 и df2. df1 имеет мульти-индекс:Как найти минимум два столбца данных с несколькими индексами в python pandas?

    A 
instance index 
a  0  10 
     1  11 
     2  7 
b  0  8 
     1  9 
     2  13 

Рама df2 имеет тот же индекс первого уровня, как df1:

   B 
instance 
a    5 
b    12 

Я хочу сделать две вещи:

1) Назначьте значения в df2 до всех рядов df1

    A B 
instance index 
a  0  10 5 
     1  11 5 
     2  7 5 
b  0  8 12 
     1  9 12 
     2  13 12 

2) Создать объект dataframe, представляющий минимум значений в A и B без конкатенации двух dataframes, как выше:

min(df1,df2): 
        min 
instance index 
a  0  5 
     1  5 
     2  5 
b  0  8  
     1  9  
     2  12 

ответ

1

Для вашего первого запроса, вы можете использовать DataFrame.join:

>>> df1.join(df2) 
       A B 
instance index   
a  0  10 5 
     1  11 5 
     2  7 5 
b  0  8 12 
     1  9 12 
     2  13 12 

Для вашего второго вы можете просто позвонить min(axis=1) по этому объекту:

>>> df1.join(df2).min(axis=1).to_frame("min") 
       min 
instance index  
a  0  5 
     1  5 
     2  5 
b  0  8 
     1  9 
     2  12 
Смежные вопросы