[스파르타코딩클럽]데이터분석 과정/TIL,WIL
코드카타 / 파이썬 / 판다스
설득이
2024. 1. 26. 20:00
SQL 코드카타
조건에 맞는 회원수 구하기
2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력
- 가입년도가 2021년 -> between 2021-01-01 and 2021-12-31
- 나이가 20세 이상 29세 이하 -> between 20 and 29
SELECT COUNT(*) FROM USER_INFO
WHERE JOINED BETWEEN '2021-01-01' AND '2021-12-31'
AND AGE BETWEEN 20 AND 29;
Game Play Analysis 5
첫 로그인과 재접속 시기를 비율로 나타내고, 2번째 자리에서 반올림
- 반올림 -> round
- 비율 계산 -> /
- 날짜 계산 -> datediff
- 최근접속 -> min
SELECT ROUND(SUM(login)/COUNT(DISTINCT player_id), 2) AS fraction
FROM (
SELECT
player_id,
DATEDIFF(event_date, MIN(event_date) OVER(PARTITION BY player_id)) = 1 AS login
FROM Activity
) a
Type of Triangle
Equilateral: It's a triangle with sides of equal length.
Isosceles: It's a triangle with sides of equal length.
Scalene: It's a triangle with sides of differing lengths.
Not A Triangle: The given values of A, B, and C don't form a triangle.
- ~때 : case when
- 3개가 같다 -> A=B AND B=C
- 2개만 같다 -> A=B OR B=C OR A=C
SELECT CASE WHEN A + B > C AND B + C > A AND A + C > B THEN
CASE WHEN A = B AND B = C THEN 'Equilateral'
WHEN A = B OR B = C OR A = C THEN 'Isosceles'
ELSE 'Scalene'
END
ELSE 'Not A Triangle'
END
FROM TRIANGLES;
파이썬 코드카타
문자열 내 마음대로 정하
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬
예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬
- FOR문 사용
- N번째 글자 -> [i[n]+i
- 정렬 -> sort
def solution(strings, n):
answer = []
#string에서 추출하기
for i in strings :
answer.append(i[n]+i) #n번째 글자
answer.sort() #정렬
return [i[1:] for i in answer]
K번째
배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하기
배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성
- 주어진만큼 자르기 -> i[0]-1:i[1]
- 정렬 -> sort
def solution(array, commands):
answer = []
for i in commands:
a = array[i[0]-1:i[1]]#주어진만큼 자르기
a.sort() #정렬
answer.append(a[i[2]-1])
return answer
파이썬
초보용 300제를 다해서 다른 문제를 찾다가 코딩 도장에서 제공하는 문제를 풀어보았다.
오늘 푼 건, 초보용 300제랑 난이도가 비슷했다! 쉬운 부분이니까~.~
https://dojang.io/course/view.php?id=7
강좌: 파이썬 코딩 도장
모두 펼치기모두 접기
dojang.io
- 5/2 -> 2.5
- 5//2 -> 2
나눗셈 후 소수점 이하를 버린다
- 5%2 -> 1
나눗셈 후 나머지를 구한
판다스
- DataFrame의 속성 값
ndim : 차원
shape : 행,열
index : rangeindex
columns : 열
values : 모든 값 출력, numpy array 형식
T : 전치 (index와 column의 축을 교환)
- astype() : 타입 변환
- sort_index() : index를 기준으로 정렬
- sort_values() : 값을 기준으로 정렬
- asscending = False : 내림차순
- by = 행 -> 2개 이상 지정 가능
주제 생각하기
- 프로 스포츠 지역 연고 선정이 지역 경제에 미치는 영향
- 올림픽, 월드컵 등 스포츠 이벤트 기간에 일어나는 금융 시장 변화