Поиск среднего значения значений фрейма данных на основе значений из другого фрейма данных

#python #pandas #dataframe #mean

#python #pandas #фрейм данных #среднее

Вопрос:

Итак, я пытаюсь найти среднее значение значений в фрейме данных 1, где значения фрейма данных 2 равны 1. Есть ли простой способ сделать это?

Пример:

     Dataframe 1:
           product1 product2 product3
    user1   2         4          5
    user2   1         3          4
    user3   3         2          1
    
    Dataframe 2: 
            product1 product2 product3
    user1   0        1        0
    user2   1        0        1
    user3   0        0        1
  

Итак, я бы в итоге получил среднее значение этих значений:

     Mean Dataframe:
         product1  product2 product3
    user1          4
    user2 1                 4
    user3                   1
  

Таким образом, среднее значение, естественно, будет равно 2.5
Однако в моем примере у меня около 3000 строк и 300 столбцов, поэтому я не могу просто использовать .loc[column == x], поскольку столбцов слишком много.

Ответ №1:

Если есть тот же индекс и те же значения столбцов, используйте DataFrame.where :

 df3 = df1.where(df2.eq(1))