在熊猫中使用sumproduct或dot函数

时间:2019-08-11 13:29:30

标签: python python-3.x pandas

我有以下2个表df和name_df,其中人数不限于2,并且可以增加。在名称列(例如John和Mary)下,1表示他/她消费了该商品,而0表示未消费:

df
item   price John  Mary
apple  2     1     1
mango  5     0     1

name_df
name
John
Mary

我想计算每个人的总积,并将该列加入name_df列。我希望结果看起来像这样:

name_df
name   sumproduct
John   2
Mary   7

我的主要问题是找出如何使用python / pandas计算sumproduct的方法。我知道.dot()函数会得到我想要的结果,但是如何将这些结果附加到每个人身上呢?

1 个答案:

答案 0 :(得分:4)

您可以使用name_df来确定id_varsgroupby


u = df.melt(df.columns ^ name_df['name'])

u.price.mul(u.value).groupby(u.variable).sum()

variable
John    2
Mary    7
dtype: int64