Excel基于随机重复递增列求平均缩减数据集行数
按A列唯一值分组计算B列平均值(重复次数不固定场景)
针对A列重复次数不固定但整体递增的大型数据集,以下是几种常用工具的解决方案,直接实现按A列唯一值聚合B列平均值、缩减行数的需求:
Excel 实现
适合小型到中型数据集,操作简单:
- 提取A列唯一递增值:在空白列(比如D列)的第一个单元格输入
=UNIQUE(A:A),回车后会自动生成所有A列的唯一值,且保持原递增顺序 - 计算对应B列平均值:在E列对应单元格输入
=AVERAGEIF(A:A, D2, B:B),下拉填充公式即可得到每个A值对应的B列均值
Python Pandas 实现
处理大型数据集效率极高,代码简洁:
import pandas as pd # 读取数据集(假设是csv格式,可替换为其他读取方式) df = pd.read_csv("your_data.csv") # 按A列分组计算B列平均值,重置索引得到目标结构 result = df.groupby('A')['B'].mean().reset_index() # 可将结果保存为新文件 result.to_csv("aggregated_data.csv", index=False)
groupby('A')会自动识别A列的所有唯一值,不管每个值重复多少次,mean()计算对应B列的平均值,reset_index()把分组后的索引转为普通列,最终结果就是D、E列的结构。
SQL 实现
如果数据存储在数据库中,直接用分组查询:
SELECT A AS D, AVG(B) AS E FROM your_table GROUP BY A ORDER BY D;
GROUP BY A会按A的每个唯一值聚合数据,AVG(B)计算均值,ORDER BY D保证结果保持递增顺序,完美匹配需求。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

