pandasデータフレームの条件付きループに関する質問。関心のあるデータフレームは膨大です。私たちは、学生の名前とテストのスコアが異なる時間に列に表示されます(下記参照)。いずれかのテストでスコアが75未満の場合は失敗とみなされ、それ以外の場合は合格となります。私はそれを効率的に行うことができません。データフレーム:条件付きループ:Pandas Python
score = {'student_name': ['Jiten', 'Jac', 'Ali', 'Steve', 'Dave', 'James'],
'test_quiz_1': [74, 81, 84, 67, 59, 96],
'test_quiz_2': [76, np.NaN, 99, 77, 53, 69],
'test_mid_term': [76, 88, 84, 67, 58, np.NaN],
'test_final_term': [76, 78, 89, 67, 58, 96]}
df = pd.DataFrame(score, columns = ['student_name', 'test_quiz_1', 'test_quiz_2', 'test_mid_term', 'test_final_term'])
私のアプローチ:(ジャック・Kvamの回答に基づいて変更すると)
df.test_quiz_1 > 70
これは(^)私に特定の生徒が失敗した場所を提供します。他のテスト(df.test_quiz_2、...)についても同じことを繰り返すことができます。最後に、これらのすべてを1つの最終的な列に結合する必要があります。最後の列では、テストで失敗した場合、学生は失敗します。
編集:私はpythonとpandasについてほとんど知識がありません。私はC/C++での実装方法について疑似コードを書いています。
for student in student_list:
value=0
for i in range (no_of_test):
if (score<75):
value=value+1
else:
continue
if(value>0):
student[status]=fail
else:
student[status]=pass
上記は単なる擬似コードです。私は学生がテストに失敗したかどうかを示すために追加の列を作成していません。 Pandasを使ってPythonで同様のことを実装することは可能ですか?
アドバイスをしてください。
ありがとうございます。質問の編集セクションを確認してください。 –
@ XingfangLee私の答えを更新しました。あなたが求めているのはこれですか? –
はい。お返事をありがとうございます。 –