如何在pandas中获取Category等于'Italian'对应Price列的均值
错误原因
你写的meanita= df.loc['Category' == 'Italian']存在两个核心问题:
- 条件写法错误:
'Category' == 'Italian'是直接比较两个字符串,返回的固定是布尔值False,而非你想要的「筛选Category字段值为Italian的行」的布尔掩码 - 即使筛选出了符合条件的行,也没有指定取Price列计算均值,也没法直接得到目标结果
正确实现方式
方法1:基于你已计算的分组均值表meanprice取值
你用groupby计算得到的meanprice的行索引就是各个Category的取值,直接用loc指定索引即可获取对应值:
meanita = meanprice.loc['Italian', 'Price']
方法2:无需预分组,直接过滤后计算均值
如果不需要其他类别的均值,也可以直接筛选目标类别后计算,写法更直观:
# 先筛选Category为Italian的行,再取Price列计算均值 meanita = df[df['Category'] == 'Italian']['Price'].mean()
内容的提问来源于stack exchange,提问作者Gloria Dalla Costa
相关产品推荐
相关产品推荐

