我在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())
我是熊猫新手。任何人都可以帮我解决这个问题。
答案 0 :(得分:2)
你非常接近。请注意,您的groupby
密钥必须是映射,功能,标签或标签列表之一。在这种情况下,您需要一个标签列表。例如:
res = df.groupby(['gender', 'status'])['exercise'].mean()
然后,您可以通过pd.Series.get
query = res.get(('female', 'Pass'))