如何对同ID对应的同一列数值进行乘积运算?
解决方案:按ID分组计算Value乘积并替换原始值
1. Excel实现步骤
- 先计算每个ID对应的乘积:在空白单元格(比如C2)输入数组公式
=PRODUCT(IF($A$2:$A$6=A2,$B$2:$B$6,"")),按Ctrl+Shift+Enter确认,下拉填充所有行。 - 复制C列计算结果,粘贴回B列替换原始值即可。
2. Python Pandas实现代码
import pandas as pd # 构造原始数据(实际场景可通过read_csv/read_excel读取) df = pd.DataFrame({ 'ID': [1, 2, 1, 3, 1], 'Value': [0.2, 0.55, 0.4, 0.6, 0.4] }) # 分组计算乘积并合并回原表 id_prod = df.groupby('ID')['Value'].prod().reset_index(name='Value') df = df.drop('Value', axis=1).merge(id_prod, on='ID') print(df)
输出结果:
| ID | Value |
|---|---|
| 1 | 0.032 |
| 2 | 0.55 |
| 1 | 0.032 |
| 3 | 0.6 |
| 1 | 0.032 |
3. SQL实现(假设表名为data_table)
WITH id_product AS ( SELECT ID, PRODUCT(Value) AS Value FROM data_table GROUP BY ID ) SELECT t.ID, ip.Value FROM data_table t JOIN id_product ip ON t.ID = ip.ID;
执行后会直接返回替换后的结果集,可根据需求写入新表或覆盖原表。
内容的提问来源于stack exchange,提问作者fid
相关产品推荐
相关产品推荐

