如果这太基本了,我很抱歉,但我对python(尤其是熊猫)是一个完全的新手
我有一份大学生人文和数学成绩的样本数据。我想找到(a)在这两个领域至少修过一门课的学生(b)没有修过任何人文课程但至少修过一门数学课程的学生
以下是pd.DataFrame学生的前3行:
Med Humanities Math
History Sociology Ethics Calculus LA Statistics
ID
1 90 96 94 90 91 NaN
2 85 81 NaN 98 NaN 95
3 NaN NaN NaN NaN 70 NaN
下面是我写的。这就可以了,但我想知道是否有一种更简单的方法不用于循环和if条件
bothHS = []
startS = []
for row, col in students.iterrows():
if pd.notna(col[0:3]).sum()>0:
if pd.notna(col[3:6]).sum()>0: bothHS.append(row)
else:
if pd.notna(col[3:6]).sum()>0: startS.append(row)
在这之后,我还想找到那些选修过其他课程组合的学生,例如:(I)历史和LA或(ii)社会学、微积分和统计学。为此,我添加了更多的if条件,使其更加混乱。有没有处理这些东西的内置函数
您可以使用
&
和|
操作来为未参加任何人文课程但至少参加过一门数学课程的学生进行选择相关问题 更多 >
编程相关推荐