Python 如何使用函数根据数据中的条件找到平均值
如果某些条件为真,我试图得到某些行中数据的平均值。例如,我使用一些汽车数据,包括品牌、年份和价格 如果要创建一个函数,那么如果Model=x和Year=x,则从满足这些条件的所有行中查找平均价格 下面的代码为我提供了所有数据的平均值。如果我没有包含.any(),我将收到一个错误Python 如何使用函数根据数据中的条件找到平均值,python,pandas,conditional-statements,mean,Python,Pandas,Conditional Statements,Mean,如果某些条件为真,我试图得到某些行中数据的平均值。例如,我使用一些汽车数据,包括品牌、年份和价格 如果要创建一个函数,那么如果Model=x和Year=x,则从满足这些条件的所有行中查找平均价格 下面的代码为我提供了所有数据的平均值。如果我没有包含.any(),我将收到一个错误 def avg_price(year, make, price): if (year == 2011).any() & (make == 'BMW').any(): return np.m
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'])
当我只想看到符合条件的行的平均价格数据时,我将从整个数据框中得到平均值的返回值。我认为这样做应该可以:
def avg_price(df):
return df [ (df.Year == 2011) & (df.make == "BMW") ].price.mean()
选择行df[(df.Year==2011)和(df.make==BMW”)]
- 然后
选择该列.price
- 最后,
计算选定行上该列的平均值.mean()
(year==2011)。如果年度序列中至少有一行包含
2011
- 但是使用系列
,您永远不会选择感兴趣的行price