如何在Pandas中对分类列执行groupby和mean

时间:2018-06-04 11:49:41

标签: python pandas pandas-groupby

我在Python Pandas中处理一个名为gradedata.csv的数据集,我在其中创建了一个名为' Status'作为' Pass'如果等级> 70和'失败'如果等级< = 70.以下是数据集前五行的列表:

fname     lname  gender  age  exercise  hours  grade  \
0   Marcia      Pugh  female   17         3     10   82.4   
1   Kadeem  Morrison    male   18         4      4   78.2   
2     Nash    Powell    male   18         5      9   79.3   
3  Noelani    Wagner  female   14         2      7   83.2   
4  Noelani    Cherry  female   18         4     15   87.4   

   address status  
0   9253 Richardson Road, Matawan, NJ 07747   Pass  
1          33 Spring Dr., Taunton, MA 02780   Pass  
2          41 Hill Avenue, Mentor, OH 44060   Pass  
3        8839 Marshall St., Miami, FL 33125   Pass  
4  8304 Charles Rd., Lewis Center, OH 43035   Pass  

现在,我如何计算具有“地位”状态的女学生的平均运动时间。通过...? 我使用了以下代码,但它不起作用。

print(df.groupby('gender', 'status')['exercise'].mean())

我是熊猫新手。任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

你非常接近。请注意,您的groupby密钥必须是映射,功能,标签或标签列表之一。在这种情况下,您需要一个标签列表。例如:

res = df.groupby(['gender', 'status'])['exercise'].mean()

然后,您可以通过pd.Series.get

提取所需的结果
query = res.get(('female', 'Pass'))