아미(아름다운미소)

CASE WHEN 과 np.where 비교 본문

랭귀지/pandas

CASE WHEN 과 np.where 비교

유키공 2024. 12. 20. 08:25

sql case when

SELECT 이름,
       성적,
       출석률,
       CASE
           WHEN 성적 >= 90 AND 출석률 >= 90 THEN 'A'
           WHEN 성적 >= 80 AND 출석률 >= 80 THEN 'B'
           WHEN 성적 >= 70 AND 출석률 >= 70 THEN 'C'
           WHEN 성적 >= 60 AND 출석률 >= 60 THEN 'D'
           ELSE 'F'
       END AS 등급
FROM 학생;

np.where

import pandas as pd
import numpy as np

# 샘플 DataFrame 생성
data = {
    '이름': ['학생1', '학생2', '학생3', '학생4', '학생5'],
    '성적': [95, 82, 67, 54, 73],
    '출석률': [95, 80, 70, 50, 60]
}
df = pd.DataFrame(data)

# np.where를 사용하여 조건에 따른 등급 부여
df['등급'] = np.where((df['성적'] >= 90) & (df['출석률'] >= 90), 'A',
              np.where((df['성적'] >= 80) & (df['출석률'] >= 80), 'B',
              np.where((df['성적'] >= 70) & (df['출석률'] >= 70), 'C',
              np.where((df['성적'] >= 60) & (df['출석률'] >= 60), 'D', 'F'))))

print(df)
Comments