根据另一个数据帧的值查找数据帧值的平均值

Finding mean of dataframe values based on values from another dataframe

所以我试图找到数据帧 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] 因为列太多了。

如果有相同的索引和相同的列值使用DataFrame.where:

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