You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python Pandas结合groupby计算符合条件的车型平均价格

解决Pandas计算指定条件车型平均价格的问题

你的现有代码存在几个问题:

  • 分组里的criteria列不存在,属于无效字段
  • 没有先过滤符合条件的数据,会导致计算所有品牌的均价,不符合需求
  • mean是方法,需要加()才能执行计算,否则只是引用方法对象

下面是修正后的完整代码,附带步骤说明:

步骤说明

  • 先筛选出符合所有条件的行:manufacturer为Honda/Toyota、condition为good、type为sedan
  • 仅按manufacturer分组,分别计算两个品牌的价格均值
  • 强制指定品牌顺序,确保返回元组的顺序固定(Honda在前,Toyota在后)
  • 将计算结果转为元组返回
import pandas as pd 

df = pd.read_csv("vehicles.csv")

def get_avg_prices():
    # 过滤满足所有条件的数据
    filtered_data = df[
        (df['manufacturer'].isin(['Honda', 'Toyota'])) &
        (df['condition'] == 'good') &
        (df['type'] == 'sedan')
    ]
    # 按品牌分组计算均价,指定顺序避免结果混乱
    average_prices = filtered_data.groupby('manufacturer')['price'].mean().reindex(['Honda', 'Toyota'])
    # 转为元组返回,若某个品牌无数据,默认返回NaN,可加fill_value=0替换为0
    return tuple(average_prices.values)

如果需要处理某个品牌没有符合条件数据的情况,比如用0填充缺失值,可以修改这一行:

average_prices = filtered_data.groupby('manufacturer')['price'].mean().reindex(['Honda', 'Toyota'], fill_value=0)

内容的提问来源于stack exchange,提问作者Mike Zhao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 18:01:16