[스파르타코딩클럽]데이터분석 과정/TIL,WIL
코드카타 / 프로젝트
설득이
2024. 2. 14. 21:38
SQL 코드카타
상품 별 오프라인 매출 구하기
상품코드 별 매출액 합게를 출력하는 SQL문을 작성
결과는 매출액을 기준으로 내림차순 정렬
매출액이 같다면 상품코드를 기준으로 오름차순 정렬
- 매출액 합계 : sum(가격 * 판매량)
- 테이블 조인
- 상품코드별 : group by
- 정렬 order by
SELECT P.PRODUCT_CODE, SUM(P.PRICE * O.SALES_AMOUNT) AS 'SALES'
FROM PRODUCT AS P
INNER JOIN OFFLINE_SALE AS O ON P.PRODUCT_ID = O.PRODUCT_ID
GROUP BY P.PRODUCT_CODE
ORDER BY `SALES` DESC, P.PRODUCT_CODE ASC;
Consecutive Numbers
연속해서 3번 이상 나타는 숫자 찾기
- 3번 이상 나타나기 -> 테이블 3번 만들기
SELECT DISTINCT L1.num AS ConsecutiveNums
FROM Logs L1, Logs L2,Logs L3
WHERE L1.id=L2.id - 1
AND L1.num=L2.num and L2.id=L3.id-1 and L2.num=L3.num
Weather Observation Station 13
LAT_N이 큰 값이 갖는 STATION
38.7880~137.2345 사이 값
소수점 4자리
- 소수점 4자리 : ROUND(,4)
- 사이 값 : BETWEEN AND
SELECT ROUND(SUM(LAT_N),4)
FROM STATION
WHERE LAT_N BETWEEN 38.7880 AND 137.2345;
파이썬 코드카타
숫자 짝꿍
def solution(X, Y):
answer = []
for i in (set(X)&set(Y)):
for j in range(min(X.count(i),Y.count(i))):
answer.append(i)
answer.sort(reverse = True)
if len(answer)==0:
return "-1"
elif answer[0] =="0":
return "0"
answer = "".join(answer)
return answer
문자열 나누기
문자열을 여러 문자열로 분해
왼쪽에서 오른족으로 읽어나가면서 x와 x가 아닌 다른 글자들이 나온 횟수 세기
처음으로 두 횟수가 같아지는 순간 멈추고 분리
def solution(s):
answer = 0
#x와 x가 아닌 다른 글자들
isx ,isnotx = 0, 0
for i in s:
if isx == isnotx:
answer += 1
x = i
if x == i:
isx += 1
else:
isnotx += 1
return answer
프로젝트
오버샘플링하고 모델링 돌렸을 때 0.87 정도 나와서 가설과 비슷한 파생변수 만들어봄
최대 0.92까지 나오는데 D등급과 E등급을 제대로 분류하지 못하는거 같아서 이 부분 잡으려고 여러 파생변수 만들어봤는데 0.95까지는 올라가지만 D,E 등급은 여전히 분류하지 못함
---
피드백
1. oversampling 다시 한 번 보기
2. Unknown 값 대치 다시 해보기
3. 중위 등급 판별을 중점으로 파생변수 만들기, 원핫 인코딩에서 라벨링 인코딩으로 바꿔보기, 대출 목적 묶어서 인코딩해보기 등이 있다