※제로베이스 데이터 취업스쿨 11기 수강 중
📗 36번째 공부 내용 요약

SQL 심화를 이어서 학습하고 두번째 EDA 과제를 진행했다.
1. Scalar Function : UCASE, LCASE, MID, LENGTH, ROUND, NOW, FORMAT 학습
2. 파이썬 EDA 학습과제 2 : 주유소 가격 데이터 수집 및 분석/시각화
📖 36번째 공부 내용 자세히

1. Scalar Function
입력값을 기준으로 단일값을 반환하는 함수
1) UCASE
영문을 대문자로 변환하는 함수
SELECT UCASE(string);
#예시
select ucase('This is ucase test.');
'''
+------------------------------+
| ucase('This is ucase test.') |
+------------------------------+
| THIS IS UCASE TEST. |
+------------------------------+
'''
2) LCASE
영문을 소문자로 변환하는 함수
SELECT LCASE(string)
#예시
select mid('This is mid test.',1,4);
'''
+------------------------------+
| mid('This is mid test.',1,4) |
+------------------------------+
| This |
+------------------------------+
'''
3) MID
문자열 부분을 반환하는 함수
SELECT MID(string, start_point, lenth);
# sting : 원본 문자열
# start : 문자열 반환 시작 위치 (첫 글자는 1, 마지막 글자는 -1)
# length : 반환할 문자열 길이(시작 위치부터 어느 길이까지 반환할건지)
#예시
select mid('This is mid test.',1,4);
'''
+------------------------------+
| mid('This is mid test.',1,4) |
+------------------------------+
| This |
+------------------------------+
'''
4) LENGTH
문자열 길이를 반환하는 함수
SELECT LENGTH(string);
#예시
select length('this is len test.');
'''
+-----------------------------+
| length('this is len test.') |
+-----------------------------+
| 17 |
+-----------------------------+
''''
5) ROUND
지정한 자리에서 숫자를 반올림하는 함수
SELECT ROUND(number, decimals_place);
# number : 반올림 대상
# decimals : 반올림할 소수점 위치
#예시
select round(315.625, 2);
'''
+-------------------+
| round(315.625, 2) |
+-------------------+
| 315.63 |
+-------------------+
'''
6) NOW
현재 날짜 및 시간을 반환하는 함수
SELECT NOW
'''
+---------------------+
| now() |
+---------------------+
| 2023-02-17 06:13:52 |
+---------------------+
'''
7) FORMAT
숫자를 천 단위 콤마가 있는 형식으로 반환하는 함수
SELECT FORMAT(number, decimal_place);
# number : 포맷을 적용할 문자 혹은 숫자
# decimal : 표시할 소수점 위치
#예시
select format(12345.6789, 0);
'''
+-----------------------+
| format(12345.6789, 0) |
+-----------------------+
| 12,346 |
+-----------------------+
'''
2. 파이썬 EDA 학습과제 2
서울시에 있는 주유소의 데이터를 수집하여, 분석하는 과제를 수행하였다.
자세한 내용은 업로드할 수 없어, 그 과정에서 복습한 내용들을 작성해본다
■ selenium webdriver 사용
from selenium import webdriver
driver = webdriver.Chrome(executable_path='../driver/chromedriver.exe')
driver.get("https://www.opinet.co.kr/searRgSelect.do")
driver.quit()
■ selenium + beautifulsoup
from selenium import webdriver
from bs4 import BeautifulSoup
driver = webdriver.Chrome('../driver/chromedriver.exe')
driver.get"https://www.opinet.co.kr/searRgSelect.do")
req = driver.page_source
soup = BeautifulSoup(req, 'html.parser')
soup.select('.post-item')
■beautifulsoup
- 단일선택 / 처음 발견한 태그만 출력 : find( ), select_one( )
- 다중선택 / 여러 개의 태그 반환 : find_all( ), select( )
■goolgemap
import googlemaps
gmaps_key = '##'
gmaps = googlemaps.Client(key=gmaps_key)
# 1. 특정 공간 정보 불러오기
tmp = gmaps.geocode('서울영등포경찰서', language = 'ko')
# 2. 원하는 정보 찾기 # 데이터프레임.get('키')
# 위도, 경도
lat = tmp[0].get('geometry')['location']['lat']
lng = tmp[0].get('geometry')['location']['lng']
■데이터 프레임 csv 파일로 저장
dfname.to_csv('filename', encoging = 'utf-8')
■boxplot
sns.boxplot(x='컬럼명', y='컬럼명', data=데이터, hue='컬럼명', palette='Set1/Set2/Set3')
➰ 36번째 후기

두번째 EDA 과제! 수업에서 다뤘던 내용에서 더 나아가 좀 더 디테일한 데이터들을 끌고오는 과제 였다.
이번에는 분석보다 데이터를 끌고와서 데이터프레임으로 만드는 것에 더 점수가 높았는데, 그래서인지 크롤링을 하는데 자꾸 특정 태그 값이 안불러져서 좀 고생했다.
그래도 이래저래 바꿔서 해보니 다행히 요구하는 데이터들을 모두 수집할 수 있었다.
내가 작성한 코드대로 하는게 괜찮은 방법이었는지, 해설강의로 얼른 확인해보고 싶다.
그리고 데이터를 분석하는 문제에서는 간단한 분석이었지만, 그래도 내 시각을 조금이라도 덧붙여 넣으려고 어찌어찌 해보기는 했는데 이것도 해설을 통해 강사님께서 제시해주시는 내용이 궁금하다.
두번째 과제도 고생했다 나자신 ~
※본 내용은 제로베이스 데이터 취업 스쿨에서 제공하는 학습 내용에 기반합니다.
'제로베이스 데이터 스쿨 > 일일 스터디 노트' 카테고리의 다른 글
38번째 스터디노트 / 버전관리, Git, Local Repository, Remote Repository (0) | 2023.02.24 |
---|---|
37번째 스터디노트 / SQL 심화 - 서브쿼리, 스칼라 서브쿼리, 중첩 서브쿼리, 인라인뷰 (0) | 2023.02.23 |
35번째 스터디노트 / SQL 심화 - primary key, foreign key, 집계함수, group by, having (0) | 2023.02.22 |
34번째 스터디노트 / SQL 심화 - SQL file, Database 백업, Python과 SQL (0) | 2023.02.22 |
33번째 스터디노트 / SQL 기초 - SELF JOIN, CONCAT, ALIAS, DISTINCT, LIMIT (0) | 2023.02.20 |