如何使用函数根据数据中的条件求平均值
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 有趣的行。
如果某些条件为真,我正在尝试获取某些行中数据的平均值。例如,我正在使用一些汽车数据,包括品牌、年份和价格。
如果要创建一个函数,如果模型 = 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 有趣的行。