전체 글 79

[mini project 2] 공공데이터를 활용한 대한민국 산업재해 현황 분석

사용한 데이터 라이브러리 및 데이터 불러오기 import pandas as pd import numpy as np import matplotlib.pyplot as plt import plotly import plotly.express as px import koreanize_matplotlib df_sectors = pd.read_csv('전체_재해_현황_및_분석업종별_산업별_중분류__20230202111602.csv', encoding = 'cp949') df_age = pd.read_csv('전체_재해_현황_및_분석연령별_산업별_중분류_21년', encoding = 'cp949') df_dt = pd.read_csv('118_DT_11806_..

AI SCHOOL/project 2023.02.05

[SQL] WITH / 서브쿼리 연습문제 - 1

SQL 연습문제 10-1 thelook_ecommerce 데이터 세트, events 테이블에는 유저의 웹 사이트 접속기록 데이터가 기록되어있습니다. 이벤트 기록에서 이벤트 타입이 purchase인 이벤트가 10번 이상 등록된 사람을 "실 고객"라고 부릅니다. 실고객에 해당하는 회원의 **이벤트 정보(events)**들을 유저 아이디 순으로 조회하세요. 실고객에 해당하는 user_id들을 먼저 구한뒤에 해당 user_id들을 이용해서 이벤트 정보를 조회하세요. 조회 항목 : 이벤트id(id), 유저ID(user_id), 도시(city), 주(state), 우편번호(postal_code), 브라우저 종류(browser), 유입경로(traffic_source), 이벤트 타입(event_type) 정렬 : 유저..

AI SCHOOL/SQL 2023.02.02

[SQL] WITH / 서브쿼리

1. 서브쿼리(Sub Query) - 서브쿼리는 다른 SQL문 안에 중첩된 SELECT문 국가가 ‘Brasil’인 유저의 주문정보(orders)를 조회 하는 쿼리 - orders를 조회하는 select문의 where절 안에서 user의 국가가 ‘Brasil’인 id를 조회하는 쿼리를 하위로 넣어서 실행 select * from `thelook_ecommerce.orders` where user_id in ( select id from `thelook_ecommerce.users` where country = 'Brasil' ) FROM절에서 사용되는 서브쿼리 select id, a.first_name, a.last_name, b.order_count as order_count from `thelook_e..

AI SCHOOL/SQL 2023.02.02

[Python] Plotly / FinanceDataReader

high-level interface : 사람에 더 가까운 -> 사람이 이해하기 더 쉬운 인터페이스, 복잡한 기능을 단순하게 만들어 놓은 인터페이스 / 추상화 그래프를 시각화 하기 위해서 어떤 정보를 API에 주어야 할까? (원래도 궁금했던 거임~) 1) 어떤 그래프로 시각화 할지 고른다 ex) 막대, 선, 산점도, 히스토그램 등 2) 어떤 데이터를 시각화 할지 API에 설정 3) x, y축을 설정 4) 제목, 그래프 크기, 범례, 서브플롯, 스타일 등을 설정 5) bar(data, x, y)와 유사한 API를 대부분 갖고 있음 Plotly 는? 파이썬의 대표적인 인터랙티브 시각화 도구 Plotly Python Graphing Library | Python | Plotly Financial Charts ..

AI SCHOOL/Python 2023.02.02

[Python] FinanceDataReader - 2

기간 수익률 비교하기 - 데이터프레임의 기준 첫날을 0으로 맞추고 상승했는지 하락했는지 구하기 - 다른 스케일 값의 상승/하락 비교 - 다른 스케일의 값을 조정할 때 표준화 혹은 정규화 방법 사용 표준화(standardization) : 데이터가 평균으로 부터 얼마나 떨어져 있는지 나타내는 값으로 변환 (Z-score 표준화) : (측정값 - 평균) / 표준편차 표준편차 공식이랑 같음~!! 정규화(normalization) : 데이터의 상대적 크기에 대한 영향을 줄이기 위해 0~1로 변환 (측정값 - 최소값) / (최대값 - 최소값) https://bskyvision.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%8D%B0%EC%9D%B4%ED%84%B0-%E..

AI SCHOOL/Python 2023.02.01

[Python] FinanceDataReader - 1

라이브러리 불러오기 import pandas as pd import numpy as np import matplotlib.pyplot as plt import FinanceDataReader as fdr 상장종목 목록 가져오기 url = "https://finance.naver.com/sise/entryJongmok.naver?&page=1" 이 url로 상위 10개 종목 불러오기 df_top10 = pd.read_html(url)[0].dropna() df_top10 전체 상장종목에서 종목 코드와 종목명만 가져오기 fdr.StockListing('KRX').head(3) df_krx = fdr.StockListing('KRX')[['Name', 'Code']] df_krx.head() merge를 통한..

AI SCHOOL/Python 2023.01.31

[Python] 서울 코로나 데이터 분석(EDA) - 2

타시도, 기타 전처리 # 공백 없애기 df['거주구'] = df['거주지'].str.strip() # 타시도 -> 기타 df['거주구'] = df['거주구'].str.replace('타시도', '기타') # 거주구 빈도수 구하기 gu_count = df['거주구'].value_counts() gu_count 변수에 담긴 값 시각화 하기 - 선 그래프: 연속된 데이터 시각화 - 막대 그래프: 범주형(끊어져 있는) 데이터 시각화 # r => red, b=> blue, k => black # h => horizontal 가로 # v => vertical 세로 gu_count.plot.bar() plt.axhline(5000, c="r", ls=":") plt.axvline(5, c="y", ls=":") 두 ..

AI SCHOOL/Python 2023.01.31

[Python] 서울 코로나 데이터 분석(EDA) - 1

서울시에서 코로나 확진자 데이터 제공 이력 처음에는 html 형식 1페이지로 제공 -> 데이터 많지 않았기 때문에 그 다음에는 여러 페이지 제공 API로 변경 API 페이징 추가 요약된 데이터만 제공 => 스타트업에서 서비스 운영하는 것과 비슷 : 처음부터 잘 만들어진 서비스를 제공하기 어렵고, 상황이 어떻게 변화할지 예측하기 어렵게 때문에 서비스를 하면서 프로덕트를 보완해 나간다. 데이터 시각화 도구 라이브러리 로드 # pandas, numpy, matplotlib.pyplot 불러오기 import pandas as pd import numpy as np import matplotlib.pyplot as plt pandas : 분석 numpy : 다차원 연산 pyplot : 시각화 matplotlib ..

AI SCHOOL/Python 2023.01.30

[mini project] 스타벅스 매장정보 수집

스타벅스 서울 매장 가져오기 #라이브러리 불러오기 import requests import json import pandas as pd !pip install -U finance-datareader #코랩 사용시 설치 필요요 import FinanceDataReader as fdr # 스타벅스 서울 매장 가져오는 함수 def get_star() : data = { 'ins_lat':'37.56682', 'ins_lng':'126.97865', 'p_sido_cd':'01', 'p_gugun_cd':'', 'in_biz_cd':'', 'set_date':'', 'iend':'1000'} url = "" response = requests.post(url, data = data) star_list = res..

AI SCHOOL/project 2023.01.29

[mini project] 동의종료 청원 데이터 수집

https://petitions.assembly.go.kr/closed/agreeEnded requests, bs4, pandas, time 불러오기 import time from bs4 import BeautifulSoup as bs import pandas as pd import requests page_no = 1 url = f'' response = requests.get(url) pd.read_json(url, encoding = 'utf-8').info() #98개의 칼럼이 있는 것을 확인 df = pd.read_json(url, encoding = 'utf-8').dropna(axis = 1) df.info() #45개의 칼럼만 남은 것을 확인 df = df[['petitRealmNm','p..

AI SCHOOL/project 2023.01.29