如何按dataframe的指定列分组计算另一列的平均值?
实现方案
你可以直接用Pandas内置的groupby分组聚合方法实现,该方法底层做了C语言级别的优化,处理百万级甚至千万行数据效率都很高,远高于手动遍历计算的方案。
核心代码
假设你的原始数据表命名为df,只需一行代码即可得到目标结果:
result = df.groupby('Company', as_index=False)['Price'].mean()
参数说明:
as_index=False:指定Company字段不作为结果表的索引,保持列结构和你需要的输出格式一致- 调用
mean()方法即对分组后的Price列计算平均值,默认自动跳过空值,不需要额外做异常值过滤
完整可运行示例
你可以直接运行以下代码验证效果:
import pandas as pd # 构造你给出的示例数据 data = { "Company": ["A", "B", "A", "C"], "Price": [50, 75, 80, 10] } df = pd.DataFrame(data) # 计算分组平均定价 result = df.groupby('Company', as_index=False)['Price'].mean() print(result)
运行后输出结果完全匹配你的需求:
| Company | Price |
|---|---|
| A | 65 |
| B | 75 |
| C | 10 |
拓展提示
如果你的定价列存在空值,希望空值按0参与计算,可以在分组前先做填充处理:
df['Price'] = df['Price'].fillna(0)
内容的提问来源于stack exchange,提问作者DubbsBrandon
相关产品推荐
相关产品推荐

