如何使用函数根据数据中的条件求平均值

How to use a function to find the mean based upon conditions in the data

如果某些条件为真,我正在尝试获取某些行中数据的平均值。例如,我正在使用一些汽车数据,包括品牌、年份和价格。

如果要创建一个函数,如果模型 = x 且年份 = x,请从满足这些条件的所有行中找出平均价格。

下面的代码为我提供了所有数据的平均值。如果我不包含 .any() 我会收到错误消息。

def avg_price(year, make, price):
    if (year == 2011).any() & (make == 'BMW').any():
        return np.mean(price)

avg_price(df['Year'], df['Make'], df['Price'])

当我只想查看满足条件的行的价格数据的平均值时,我将从整个数据框中获取平均值 return。

我认为这样的事情应该可以完成工作:

def avg_price(df):
    return df [ (df.Year == 2011) & (df.make == "BMW") ].price.mean()
  • df [ (df.Year == 2011) & (df.make == "BMW") ] select 行
  • 然后 .price select 列
  • 最后 .mean() 计算该列在 select 行
  • 上的均值

你原来的建议有几个问题

  • (year == 2011).any() 将 return 一个布尔值,即 True 如果 至少有一个 行的年份系列包含 2011
  • 但是使用系列 price ,您永远不会 select 有趣的行。