根据另一个数据帧的值查找数据帧值的平均值
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))
所以我试图找到数据帧 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))