| 구분 | 🟥 SQL | 🟦 Python |
|---|---|---|
| 언어 | 절차지향 언어 | 객체지향 언어 |
| 역사 | 개발: 1970년 표준화: 1986년 | 개발: 1989년 표준화: 1991년 |
| 장점 | ✔ select, from 등 하나의 구문으로 처리 쉬움 ✔ 실제 컴퓨터가 어떻게 질의를 처리하는지 몰라도 됨 ✔ 명령어 구조가 단순하고 해석 쉬움 | ✔ 한 줄(셀) 단위 실행 → 디버깅 쉬움 ✔ 다양한 Library 지원 (시각화, 통계, 자동화 등) ✔ 자유로운 데이터 핸들링 |
| 단점 | ❗ 시각화, 분석 등 Library 지원 부족 ❗ 테이블 기반 작업에는 강하지만 유연성이 떨어짐 ❗ 쿼리 컴파일·트러블슈팅이 오래 걸릴 수 있음 | ❗ 같은 Query 수행 시 SQL보다 느릴 수 있음 ❗ 다양한 작업 가능하지만 데이터 처리 목적만 보면 과한 경우 존재 |

: 우리가 자주쓰는 함수들을 모아놓은 묶음, 라이브러리를 간단히 호출함으로써 복잡한 연산도 쉽게 한줄로 해결가능.
* 라이브러리 호출하기
-> import pandas as pd (pandas 라이브러리 호출하고 pd로 명명)
-> from matplotlib.pylot as plt (라이브러리 중 특정 함수만 사용하고 싶을때 from )
: 데이터를 다루기 위한 가장 기본적인 라이브러리
EDA (Exploratory Data Analysis / 탐색적 데이터 분석)
1) 이상치
2) 결측치
3) 시각화
magic command 를 활용한 셀 실행시간 확인하기
%,%% 키워드 사용하여 실행,
cpu time : cpu 코드 실행하는데 걸린시간
wall colck time : 실제 코드를 실행하는데 걸린 시간
결측치 확인
df. isna.sum()
df. isnull().sum()
컬럼 불러오기
방법1 df.category
방법2 df['category']
방법3 df.iloc[:,4]
조건에 부합하는 데이터 가져오기1
df.where(df2['age']>50)
:nan 값도 나옴
조건에 부합하는 데이터 가져오기2
mask =((df2['age']>50) & (df2['gender']=='male'))
df2[mask]