Skip to main content
 首页 » 编程设计

python之如何在 pandas 的 groupby 之后乘以一列的行

2025年05月04日22powertoolsteam

我有一个以下格式的 pandas 数据框:

 user  percent  
  x      0.2 
  x      0.5 
  x      0.8 
  y      0.1 
  y      0.6 
  y      0.2 
  y      0.6 

我正在尝试为每个用户乘以行中的百分比。

在示例中,x 的结果将为 0.2*0.5*0.8 = 0.08

因此,数据框应如下所示:

user     result 
  x      0.08 
  y      0.0072 

如何获得我预期的输出?

请您参考如下方法:

groupby + prod.

df.groupby('user', as_index=False).prod() 
 
  user  percent 
0    x   0.0800 
1    y   0.0072 

或者,使用 apply + np.prod -

df.groupby('user', as_index=False).apply(np.prod) 
 
  user  percent 
0    x   0.0800 
1    y   0.0072