데이터 분석 공부/TIL(Today I Learned)
TIL(Today I Learned)64일차(24.02.11)
세조목
2024. 2. 11. 22:07
SQLD(2회차 학습 - 2주차)
심화 프로젝트
2024.02.11 - [데이터 분석 공부/프로젝트] - 심화 프로젝트 6일차(방문 주차에따른 코호트 & 코호트별 weekly 리텐션 구하기)(24.02.11)
심화 프로젝트 6일차(방문 주차에따른 코호트 & 코호트별 weekly 리텐션 구하기)(24.02.11)
1. 코호트 분석에 필요한 컬럼들로 구성된 데이터프레임 만들기 df = train_df2[['date_week', 'fullVisitorId']] 2. 고객ID('fullVisitorId')를 인덱스로 지정하기 df.set_index('fullVisitorId', inplace=True) # set_index('fullVisit
eyeoftheworld1209.tistory.com
SQL, PYTHON 예제 복습
PYTHON
1. 나누어 떨어지는 숫자 배열
https://school.programmers.co.kr/learn/courses/30/lessons/12910
def solution(arr, divisor):
answer = []
for i in range(len(arr)):
if arr[i] % divisor == 0:
answer.append(arr[i])
else:
pass
if len(answer) != 0:
answer.sort()
else:
answer.append(-1)
return answer
2. 음양 더하기
https://school.programmers.co.kr/learn/courses/30/lessons/76501
def solution(absolutes, signs):
answer = 0
for i in range(len(absolutes)):
if signs[i] == True:
val_plus = absolutes[i] * 1
answer+=val_plus
else:
val_minus = absolutes[i] * -1
answer+=val_minus
return answer
3. 핸드폰 번호 가리기
https://school.programmers.co.kr/learn/courses/30/lessons/12948
def solution(phone_number):
answer = []
num_list = list(phone_number)
cnt = len(num_list)-4
val1 = cnt * '*'
answer.append(val1)
for i in range(-1,-5,-1):
val2 = num_list[i]
answer.append(val2)
answer2 = ''.join(answer)
return answer2
SQL( 550. Game Play Analysis IV)
https://leetcode.com/problems/game-play-analysis-iv/
WITH FIRST AS(
SELECT PLAYER_ID, DEVICE_ID, MIN(EVENT_DATE) EVENT_DATE, GAMES_PLAYED
FROM ACTIVITY
GROUP BY PLAYER_ID
)
SELECT ROUND(COUNT(*) / (SELECT COUNT(DISTINCT PLAYER_ID) FROM FIRST), 2) FRACTION
FROM FIRST FI RIGHT JOIN ACTIVITY AC ON FI.PLAYER_ID = AC.PLAYER_ID
WHERE DATEDIFF(AC.EVENT_DATE, FI.EVENT_DATE) = 1