일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- streamlit
- Chat GPT
- 서브쿼리
- pandas
- 데이터 분석
- 프로젝트
- SQL
- If
- 태블로
- 팀프로젝트
- 기초프로젝트
- 시각화
- jd
- da
- 전처리
- cross join
- 최종 프로젝트
- 히트맵
- 클러스터링
- SQLD
- GA4
- 머신러닝
- Python
- 기초통계
- 크롤링
- lambda
- 군집화
- 데이터분석
- 프롬프트 엔지니어링
- data analyst
- Today
- Total
세조목
WIL(Weekly I Learned)(12월 넷째주) 본문
한 주 리뷰
12월의 마지막 주가 끝나가고 23년의 마지막을 향해 나아가고 있습니다.
12월의 넷째주 5일간의 평점은 80.18점으로 99.14점이었던 저번주에 비해 점수가 떨어졌습니다.
아무래도 예제들의 난이도가 올라가고, 복습을 하는데 생각보다 많은 시간이 소요됨에따라 계획했던
일들을 모두 수행하지 못함에 따른 것으로 판단됩니다.
하지만 난이도 높은 문제들을 풀고, 복습의 횟수가 늘어남에따라서 학습했던 내용들을 조금씩 활용하게되고,
지식들이 머릿속에 축적되고 있다는 것을 느낍니다.
고층 빌딩 또는 아파트를 지을때 기초공사에 가장 많은 시간이 소요되고, 이후부터는 굉장히 빠른 속도로
건물이 올라가는것처럼 지금의 시기가 저에게 있어서 그런 기초공사의 단계라고 생각합니다.
더디더라도 차근차근 단계들을 밟아나갈 것입니다.
금주 학습한 내용
SQL
1. CROSS JOIN
cross join은 두 테이블의 인스턴스(=row)간 발생할 수 있는 모든 경우의 수를 출력한다.
2. LEFT(or RIGHT) JOIN 時 기준이 되는 테이블도 변형가능하다.
LEFT JOIN을 예시로 들면
왼쪽에 있는 테이블이 기준이 되어 왼쪽 테이블에 있는 모든 값들은 출력되고 오른쪽 테이블에만 있는 값들은 출력되지 않는다.
이 때 왼쪽에 있는 테이블이 기준이 되기때문에 왼쪽 테이블은 절대 변형이 일어나지 않을 것이라고 생각할 수 있으나
왼쪽테이블도 얼마든 변형이 일어날 수 있다.
여기서 변형이라함은 행이 얼마든지 늘어날 수 있다는 것을 말한다.
3. JOIN 時 기준이 되는 컬럼을 AND(교집합)로 지정할 수 있다.
A LEFT JOIN B ON A.~~ = B.~~
이것이 기본적인 JOIN의 문법이다.
그런데 AND를 붙여서 조건을 여러개 지정해줄 수 있다.
예시는 아래와 같다.
A cross join B on A.~~ = B.~~ left join C on A.~~ = C.~~ and B.~~ = C.~~
cross join된 테이블과 c라는 테이블을 left join하는데 이 때 두 개의 컬럼이 기준이 된다는 의미이다.
4. STR_TO_DATE
STR_TO_DATE는 문자열을 날짜로 바꿔주는 함수이다.
문법은 STR_TO_DATE(컬럼명, 형식)이고
여기서 형식에는 %Y, %D, %M 등이 들어가며 따옴표로 열고 닫아주면 된다(ex. '%Y-%m-%d').
STR_TO_DATE 함수는 WHERE절에 입력해줘야한다.
5. SQL 쿼리 실행순서
SQL 쿼리문을 작성할 때
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
순서로 입력하는데
쿼리가 읽히는 순서는 아래와 같다.
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
6. 데이터 삭제
테이블에서 데이터를 삭제하고싶을때는 DELETE 함수를 활용하면 된다.
DELETE FROM 테이블명
WHERE 조건
SELECT 절 입력없이 위 쿼리만 입력하면 되고,
유의해야할 사항은 한 번 제거하면 복구가 불가능하기 때문에 진짜 없어도 되는 인스턴스인지 여러번 고민해봐야한다는 점이다.
PYTHON
1. 개념
- iterable
- 조작적 정의
- 인과관계와 상관관계
iterable은 딕셔너리, 리스트, 튜플처럼 한 개의 데이터가 여러개의 구성요소(element or number)를 가지는 경우를 의미한다.
조작적 정의란 사회문화 현상을 수치화하여 연구해야할 때 연구자가 특정 개념을 연구에 맞게끔 재정의하는 것을 의미한다.
인과관계는 원인과 결과의 관계를 의미하기때문에 인과관계가 있으면 상관관계는 당연히 성립된다.
반면 상관관계는 두 변수 간의 관련성을 나타내는 개념으로 두 변수가 연관이 있을 수는 있지만 하나의 변수가 발생했다고해서 무조건 다른 변수가 발생한다고는 할 수 없다. 다시말해 상관관계가 있다고해서 인과관계까지 성립된다고 볼 수는 없는 것이다.
2. round함수 유의사항
round함수는 소숫점 이하의 숫자를 반올림해주는 함수이다.
그런데 반올림하려는 숫자의 앞에 위치한 숫자가 홀수냐 짝수냐에따라서 올림과 내림의 기준이 되는 범위가 달라진다.
무슨 말이냐하면
반올림하려는 숫자의 앞에 위치한 숫자가 홀수일 경우
반올림하려는 숫자가 0~5에 해당할때에만 반올림하려는 숫자를 내려준다.
그리고 반올림하려는 숫자가 6~9에 해당한다면 반올림하려는 숫자를 올려준다.
반면 반올림하려는 숫자의 앞에 위치한 숫자가 짝수일 경우
반올림하려는 숫자가 0~4에 해당할때에만 반올림하려는 숫자를 내려주고,
반올림하려는 숫자가 5~9에 해당하면 반올림하려는 숫자를 올려준다.
만약 소수점 첫째자리에서 반올림(=정수 부분만 나타내고자 할 때)하고자 할 때는
정수 부분 일의 자리 숫자가 홀수인지 짝수인지를 확인하면 된다.
3. 문자열 관련
따옴표 넣기
문자열에 (작은)따옴표를 넣고싶을때 : 문자열을 큰 따옴표로 두른다.
문자열에 (큰)따옴표를 넣고싶을때: 문자열을 작은 따옴표로 두른다.
\(열 슬래쉬) 뒤에 작은 따옴표(or 큰 따옴표)를 붙이면 문자열을 작은 따옴표로 두르든 큰 따옴표로 두르든 상관없이
문자열 안에 따옴표를 넣을 수 있음
1번 예시
"which one's weapon is the most powerful?"
>> which one's weapon is the most powerful?
2번 예시
'"I ate too much peaches in the afternoon". he says'
>> "I ate too much peacehs in the afternoon". he says
3번 예시
'When Anna\'s mom told me \"why are you here?\" I said looking her mom\'s necklaces \"for giving this necklaces\'
>> When Anna's mom told me "why are you here?" I said looking her mom's necklaces "for giving this necklaces"
줄 바꿈
- \n
- 문자열 앞 뒤에 큰 따옴표(or 작은 따옴표) 3개 붙이고 문장별로 절 나누기
asdf="""what is your name
please tell me"""
print(asdf)
>> what is your name
>> please tell me
문자열 포매팅
- %d : 문자열에 숫자를 넣고자 할 때 사용
- %s : 문자열에 문자를 넣고자 할 때 사용(%s의 경우 숫자, 문자 상관없이 사용할 수 있음
- 문자열에 %를 넣고자할 때는 %를 두 번 연달아서 입력해주면 됨
정렬과 공백
%와 숫자를 결합하면 문자열을 정렬하고 공백을 만들 수 있다.
%뒤에 양수가 나온다면 오른쪽 정렬, 음수가 나온다면 왼쪽 정렬이다.
그리고 %뒤에 나오는 숫자만큼 문자열의 크기가 정해진다.
예를 들어
"%10s" %"hi"
라고 한다면
문자열의 공간은 총 10칸이 되고 "hi"가 오른쪽 정렬돼서 출력되기때문에
나머지 8칸은 공백이된다.
참고로 첫번째 따옴표 안에 기입되는 문자는 생성되는 문자열 바깥에 위치하게된다.
무슨 말이냐하면
"%-13sTomy" %"hi"라고 했을때
13개의 칸이 형성되고
"hi"는 왼쪽 정렬되며
14번째 순서부터 "Tomy"가 입력된다.
아래와 같이 말이다.
'hi Tomy'
소수점 표현
%와 숫자를 조합해서 소수점도 표현할 수 있다.
문법은 아래와 같다.
"%0.nf" % (실수 입력)
실수를 n번째자리까지만 남기겠다는 말인데
예를 들어 "%0.3f" %3.579543의 경우
소수점 뒤에 3이 있기 때문에 3.579543을 소수점 셋째자리까지만 남겨서 3.580이 출력된다.
이 때 % 뒤의 숫자 0은 생략해도 무방하다.
소수점 앞에 입력되는 정수는 문자열의 크기(=길이)를 의미하는 것으로 0은 길이에 상관하지 않겠다는 의미이기 때문이다.
만약 10이 들어가서 "%10.3f" %3.579543이라면
문자열에 10개의 칸이 생기고 3.580이라는 숫자가 오른쪽 정렬돼서 아래와 같은 결과값이 출력될 것이다.
' 3.580'
문자열 포매팅(f-string)
f-string은 문자열을 합칠때 사용한다.
asdf = ["apple", "strawberry", "watermelon", "pineapple"]
for i in range(4):
print(f'My favorite fruit is {asdf[i]}')
>>> My favorite fruit is apple
>>> My favorite fruit is strawberry
>>> My favorite fruit is watermelon
>>> My favorite fruit is pineapple
'데이터 분석 공부 > WIL(Weekly I Learned)' 카테고리의 다른 글
WIL(Weekly I Learned)(1월 둘째주) (2) | 2024.01.12 |
---|---|
WIL(Weekly I Learned)(1월 첫째주) (1) | 2024.01.05 |
WIL(Weekly I Learned)(12월 셋째주) (4) | 2023.12.22 |
WIL(Weekly I Learned)(12월 둘째주) (0) | 2023.12.15 |
WIL(Weekly I Learned)(12월 첫째주) (1) | 2023.12.08 |