我对Python和pandas还不熟悉,我试图理解两组代码之间的区别以及它们为什么做不同的事情
我试过把代码行分开,但代码仍然给出不同的答案
女学生主修物理的比例是多少
代码1:
fem_phy = df.query("gender == 'female' & major == 'Physics'").count() /
(df.query("gender=='female'")).count()
fem_phy
代码2:
len(df[(df['gender'] == 'female') & (df['admitted']) &
(df['major']=='Physics')]) / len(df[(df['gender']=='female') &
(df['admitted'])])
我希望第二组代码会像第一组一样返回0.120623
支票:
对于正确的行过滤,请使用^{} 或^{} ,对于相同的输出,第二个行被删除
df['admitted']
:问题在于^{} —它返回被排除的行数,但值有误—所以这里得到所有
Series
值的2
(因为数据中没有丢失的值):正确的用法是用
len
获取长度:或仅按
sum
计算掩码的True
值:所有这些加在一起就是:
相关问题 更多 >
编程相关推荐