#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))