서브쿼리 서브쿼리는 다른 SELECT문에 삽입된 SELECT문이다. 서브쿼리를 사용하면 간단한 명령문으로 강력한 기능을 제공하는 명령문을 작성할 수 있다. 테이블 자체 데이터에 종속된 조건을 사용하여 테이블에서 행을 선택할 때 유용하다. 서브쿼리의 사용지침 서브쿼리를 괄호()로 묶어야 한다. 비교조건의 오른쪽에 서브쿼리를 넣는다. 일반적인 서브쿼리에서는 ORDER BY절을 사용하지 않는다. 단일 행 연산자(=,>,=, ANY는 최소값보다 큼을 의미하고 = ANY는 IN과 동일하게 처리된다. ALL 서브쿼리에 의해 반환되는 모든 값과 비교한다. ALL은 최대값보다 큼을 의미한다. 서브쿼리 결과 여러 건인 경우 모든 결과 만족여부를 검사하는 SQL문 SELECT player..
조인(JOIN) 데이터베이스에서 여러 테이블의 데이터를 병합하여 조회할 경우 조인(JOIN)을 사용한다. 조인(JOIN)은 관계형 데이터베이스에서 가장 기본적이고 가장 중요한 기능이다. 관계형 데이터베이스에서 서로 독립적인 데이터들간의 조인(JOIN)을 이용하여 필요 시 원하는 다양한 정보를 참조할 수 있다. 해당 컬럼에 존재하는 공통 값, 일반적으로 기본 키 및 외래 키 컬럼을 조인 조건으로 사용하여 한 테이블의 행을 다른 테이블의 행에 조인할 수 있다. CROSS JOIN 두 테이블에 있는 모든 레코드를 가지고 가능한 모든 조합을 만들어 내는 결합 방법이다. A테이블 CROSS JOIN B테이블을 수행하면 A테이블의 모든 행이 B테이블의 모든 행과 연결되는 방식이다. A테이블에서 얻을 수 있는 ROW..
INSERT 테이블에 데이터(행)을 등록하려면 INSERT 문장을 사용한다. 문자와 날짜 자료에 입력 값을 지정할 때 작은 따옴표('')로 묶어서 지정한다. INSERT는 다음 3가지 방법으로 사용될 수 있다. 완전한 행 입력하기 부분 행 입력하기 쿼리 결과 입력하기 INSERT INTO 테이블명 (컬럼1, 컬럼2, 컬럼3,...) VALUES (값1, 값2, 값3,...); 1. 완전한 행 입력하기 테이블에 있는 모든 컬럼에 값을 지정해서 입력하는 방법이 완전 행 입력이다. INSERT INTO 테이블 명 뒤에 테이블의 모든 컬럼을 ()로 묶어서 지정한다. 테이블 생성 시 사용한 컬럼 순서와 동일한 순서로 입력작업을 수행하는 경우 ()로 지정한 컬럼 목록을 생략할 수 있다. 테이블 구조가 변경된 경우에..
1. COUNT로 행 개수 구하기 함수는 어떤 값을 입력하면 그에 대응하는 결과 값을 출력하는 작업을 수행하는 상자 같은 것이라고 생각하면 된다. 함수를 사용할 때 괄호() 안에 입력 데이터를 지정하는데 이를 인수 혹은 파라미터라고 하며, 출력 결과값을 반환 값이라고 한다. COUNT 함수() 안에 행 수를 알고 싶은 컬럼을 넣으면 된다. SELECT COUNT(*) FROM player player테이블의 모든 행(ROW)수 구하기 COUNT(*)를 지정한 경우에는 테이블 전체 행수를 반환한다. (NULL값 포함) COUNT(컬럼)을 지정하면 해당 컬럼에 NULL값이 들어있는 행은 제외하고 NULL이 아닌 행의 개수만 반환한다. 동일한 테이블을 대상으로 COUNT함수를 사용해도 인수가 다르면 결과가 다..
step1. 필요한 라이브러리 불러오기 & 이메일 발송을 위한 로그인 아이디와 비밀번호 입력 input 만들기 import smtplib, email, os import openpyxl, sys from io import StringIO import time import random from email.header import Header from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage from email.mime.base import MIMEBase from email import encoders gid = input('G-Mail ..
1. 빈도 분석하기: collections패키지의 counter 함수 이용 import collections sal_all = [970,950,990,380,430,430,380,420,450,320,550,320,380,420,970] sal_count = collections.Counter(sal_all) print(sal_count) ⇨출력 값: Counter({380: 3, 970: 2, 430: 2, 420: 2, 320: 2, 950: 1, 990: 1, 450: 1, 550: 1}) 2. 최대 / 최소값 구하기: mix, max print('최대연봉:', max(sal_all)) print('최소연봉:', min(sal_all)) print('전체 건수:',len(sal_all)) ⇨출력 값..
step 1. nltk 패키지 설치하기 nltk.download() step2. nltk패키지 불러오고 제대로 설치되었는 지 테스트하기 import nltk from nltk.corpus import brown brown.words() step3. 불용어 제거를 위한 불용어 사전 로딩 from nltk.corpus import stopwords from nltk.tokenize import RegexpTokenizer 미국 도날드 트럼프 연설문 불러와서 형태소 분석하기~! (필요하신 분은 아래 텍스트 파일 다운로드 해주세요~!) step4. 텍스트 파일 불러오고 형태소 분리하기 data1 = open('파일경로/파일이름.txt').read() from nltk.tokenize import WordPunc..
step1. 맥북 한글 폰트 설정: AppleGothic이용하기 from matplotlib import font_manager, rc rc('font', family = 'AppleGothic') step2. csv파일 안깨지게 불러오기 먼저 엑셀 csv 파일을 저장할 때 UTF-8 CSV파일로 저장함 한글이 깨지면 engine = 'python'이용 df = pd.read_csv('경로/파일이름.csv', engine = 'python) ⇨ 데이터 프레임 출력 결과 선수명 경기수 타수 득점 안타 홍길동 137 476 84 176 일지매 131 483 91 177 전우치 106 388 84 141 강감찬 125 498 103 173 step3. 컬럼별로 데이터 만들기 data1 = df['경기수'] d..
1. 결정 트리(Decision Tree) 데이터 마이닝에서 일반적으로 사용되는 방법론으로, 몇몇 입력 변수를 바탕으로 목표 변수의 값을 예측하는 모델을 생성하는 것을 목표로 한다. 아래 그림은 그러한 예측 모델의 한 예를 나타내고 있다. 그림의 트리 구조에서, 각 내부 노드들은 하나의 입력 변수에, 자녀 노드들로 이어지는 가지들은 입력 변수의 가능한 값에 대응된다. 잎 노드는 각 입력 변수들이 루트 노드로부터 잎 노드로 이어지는 경로에 해당되는 값들을 가질 때의 목표 변수 값에 해당된다. 2. 랜덤 포레스트(Random Forest) 분류, 회귀 분석 등에 사용되는 앙상블 학습 방법의 일종으로, 훈련 과정에서 구성한 다수의 결정 트리로부터 부류(분류) 또는 평균 예측치(회귀 분석)를 출력함으로써 동작한..
1. 선형회귀(Linear Regression) 다음과 같은 선형 함수 y=Wx + b를 이용해서 회귀(Regression)를 수행하는 모델을 뜻한다. 이때 x,y는 가지고 있는 데이터이고, w와 b는 데이터에 적합한 값으로 학습될 수 있는 파라미터(Parameter)이다. 2. 손실 함수(Loss Function) - MSE 머신 러닝 모델을 학습시키기 위해서는 적절한 파라미터값을 알아내기 위해서 현재 파라미터값이 우리가 풀고자 하는 목적에 적합한 값인지를 측정할 수 있어야 한다. 이를 위해 손실 함수 J(θ)를 정의한다. 손실 함수는 여러가지 형태로 정의될 수 있다. 그 중 가장 대표적인 손실 함수 중 하나는 평균제곱오차(Meanof Squared Error(MSE))이다. MSE는 아래과 같은 수식..