전체 글 27

[1유형] IQR, 결측치, 왜도 첨도, 표준편차, group by

문제데이터에서 IQR을 활용해 Fare 컬럼의 이상치를 찾고, 이상치 데이터의 여성 수를 구하시오해답Q1 = df['Fare'].quantile(0.25)Q3 = df['Fare'].quantile(0.75)IQR = Q3 - Q1outlier = df[(df['Fare'] Q3 + 1.5 * IQR)]print((outlier['Sex'] == 'female').sum()) 상한 or 하한 둘 중 하나만 고르고 싶을 때Q1 = df['Fare'].quantile(0.25)Q3 = df['Fare'].quantile(0.75)IQR = Q3 - Q1lower = df[df['Fare'] (Q3 + 1.5 * IQR)]print((upper['Sex'] == 'female').sum()) 문제주어진 ..

[Programmers] 대장균의 크기에 따라 분류하기 2 (Lv.3)

🔗 문제 link : https://school.programmers.co.kr/learn/courses/30/lessons/301649🖥️ 문제 풀이SELECT ID, CASE NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC) WHEN 1 THEN 'CRITICAL' WHEN 2 THEN 'HIGH' WHEN 3 THEN 'MEDIUM' WHEN 4 THEN 'LOW' END AS COLONY_NAMEFROM ECOLI_DATAORDER BY ID ASC;💡 문제 해결NTILE(n) 함수란 데이터를 정렬한 후 n개의 그룹으로 균등하게 나누고, 각 행에 그룹 번호를 ..

[Programmers] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (Lv.3)

🔗 문제 link : https://school.programmers.co.kr/learn/courses/30/lessons/157340🖥️ 문제 풀이SELECT CAR_ID, CASE WHEN CAR_ID IN ( SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE START_DATE = '2022-10-16' ) THEN '대여중' ELSE '대여 가능' END AS AVAILABILITYFROM CAR_RENTAL_COMPANY_RENTAL_HISTORY GROUP BY CAR_IDORDER BY CAR_ID DESC;💡 문제 해..

[Programmers] 조건에 맞는 사용자 정보 조회하기 (Lv.3)

🔗 문제 link : https://school.programmers.co.kr/learn/courses/30/lessons/164670🖥️ 문제 풀이SELECT U.USER_ID, U.NICKNAME, CONCAT(U.CITY, ' ', U.STREET_ADDRESS1, ' ', U.STREET_ADDRESS2) AS '전체주소', CONCAT( SUBSTR(U.TLNO, 1, 3), '-', SUBSTR(U.TLNO, 4, 4), '-', SUBSTR(U.TLNO, 8, 4) ) AS '전화번호'FROM USED_GOODS_BOARD BJOIN USED_GOODS_USER U ON B.WRITER_ID = U.USER_IDGROUP ..

[Programmers] 오랜 기간 보호한 동물(2) (Lv.3)

🔗 문제 link : https://school.programmers.co.kr/learn/courses/30/lessons/59411🖥️ 문제 풀이SELECT I.ANIMAL_ID, I.NAMEFROM ANIMAL_INS IJOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_IDORDER BY DATEDIFF(O.DATETIME, I.DATETIME) DESCLIMIT 2;💡 문제 해결놓친 부분1. LEFT JOIN + IS NOT NULL → INNER JOIN입양 간 동물만 필요하다면LEFT JOIN ... WHERE O.ANIMAL_ID IS NOT NULL 보다JOIN ... 이 더 간단하고 같은 결과가 나옴❌ 잘못 생각한 방향HAVING DATEDI..

A/B Test 유의점

1. 훔쳐보기 문제 (Peeking Problem)A/B Test는 통계적 가설 검정을 사용하여 두 개 이상의 대안 중 어느 것이 더 효과적인지 결정하는 실험 방법임현업에서 자주 발생하는 유의점 중 하나가 훔쳐보기 문제(Peeking Problem)임 훔쳐보기 문제란?: 실험 도중 중간 결과를 확인하고, 실험을 중단하는 경우를 말함계획된 실험 기간을 채우지 않고 중간 데이터만 보고 판단을 내리는 행위로, 통계적으로 신뢰할 수 없는 결론을 초래 훔쳐보기 문제가 발생하는 전형적인 시나리오1 Pager로 실험 기간 7일 협의↓3일차에 지표 하락 확인↓ 기획자가 중간 확인 후 판단↓ 실험 조기 중단발생 문제: 중간에 실험을 중단하면 기존 가설 검정에 영향을 주게 되고, 보통 과대 평가된 결과를 얻게 됨통계적 ..

[Programmers] 조건에 맞는 개발자 찾기 (Lv.2)

🔗 문제 link : https://school.programmers.co.kr/learn/courses/30/lessons/276034🖥️ 문제 풀이SELECT DISTINCT D.ID, D.EMAIL, D.FIRST_NAME, D.LAST_NAMEFROM SKILLCODES SJOIN DEVELOPERS D ON S.CODE & D.SKILL_CODE = S.CODEWHERE S.NAME IN ('Python', 'C#')ORDER BY D.ID ASC;💡 문제 해결S.CODE & D.SKILL_CODE = S.CODE 뜻SKILL_CODE는 여러 스킬을 더한 값으로 저장됨예:Python = 256 → 100000000Java = 128 → 010000000JS..

A/B Test 실험 주제 2

1. 1 Pager - 실험 계획서List 페이지의 기본 정렬 기준을 변경하면 유저가 더 마음에 드는 제휴점을 발견하게 되어 구매 전환율이 높아질 것이라는 가설로 설계된 실험4개 그룹을 동시에 비교하는 A/B/C/D 멀티 베리언트 테스트1 Pager 실험 계획서 Target User첫 화면의 기본 정렬(= 판매순)의 제휴점들이 마음에 들지 않아 이탈하는 고객ObservationList 페이지의 이탈률(Churn Rate)이 50%로 전체 퍼널 중 가장 높음MAP@K 분석 결과 현재 정렬(판매순)의 MAP@10dms 0.38로 다른 정렬 기준(최대 0.49)에 비해 낮음또한 정렬별 CTR 분석에서 별점 높은순 CTR이 13%로 가장 높음Problem Statement첫 화면의 기본 정렬(= 판매순)의 제휴..

[Programmers] 연도별 대장균 크기의 편차 구하기 (Lv.2)

🔗 문제 link : https://school.programmers.co.kr/learn/courses/30/lessons/299310🖥️ 문제 풀이SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR, MAX(SIZE_OF_COLONY) OVER (PARTITION BY YEAR(DIFFERENTIATION_DATE)) - SIZE_OF_COLONY AS YEAR_DEV, IDFROM ECOLI_DATAORDER BY YEAR ASC, YEAR_DEV ASC;💡 문제 해결윈도우 함수(Window Function)란?: 윈도우 함수는 행을 유지한 채 그룹별 계산 결과를 추가하는 함수GROUP BY 처럼 그룹으로 묶어 계산하지만, 행 수가 줄어들지 않음기본 문법..

[Programmers] 업그레이드 된 아이템 구하기 (Lv.2)

🔗 문제 link : https://school.programmers.co.kr/learn/courses/30/lessons/273711🖥️ 문제 풀이SELECT I.ITEM_ID, I.ITEM_NAME, I.RARITYFROM ITEM_INFO IJOIN ITEM_TREE T ON I.ITEM_ID = T.ITEM_IDWHERE T.PARENT_ITEM_ID IN ( SELECT ITEM_ID FROM ITEM_INFO WHERE RARITY = 'RARE')ORDER BY I.ITEM_ID DESC;💡 문제 해결서브쿼리 IN을 사용한 이유: RARE 아이템 ID가 여러 개일 수 있기 때문예:RARE = 0,1,3,4 하나만 비교:= 여러 개 비교:IN (...) 사용서브쿼리로 ..