2024. 2. 1. 02:34ㆍ전처리/SQL
SQL vs. Pandas - 인프런 (inflearn.com)
SQL vs. Pandas - 인프런
jupyter notebook 상에서 EDA와 비슷한 작업을 하는 경우, pandas와 sql 둘 중에 어떤 것을 사용해서 데이터를 처리하고 분석하는 것이 더 효율적인지 궁금합니다.제 개인적인 생각으로는, 실제 업무에서
www.inflearn.com
출처입니다.
✏️일단 Pandas는 메모리를 넘는 데이터는 담을 수 없다는 제약 사항은 제외하고,
01 SQL 이 편한 이유
1. 많은 테이블을 조인할 경우
- Pandas Join이 직관적이진 않다.
2. 여러 컬럼과 다양한 Aggregation을 적용한 Group by 를 많이 수행할 경우
- Pandas Group by 가 편하진 않다.
3. 복잡한 where 조건으로 filtering 해야 할 경우
- Pandas의 boolean indexing이 있지만, 거의 지저분한(?) 수준까지 탈탈 털어낼수 있는 필터링은 SQL 이 더 편하다.
4. 집합의 레벨을 변경하기가 상대적으로 더 수월.
- Groupby나 Groupby case when, distinct가 더 쉽다.
5. 복잡한 데이터 가공일 경우 SQL이 더 직관적으로 코드 작성이 가능합니다.
- Pandas의 경우 API를 나열하면서 여러 로직을 사용하면서 가공해야 하므로 절차적인 프로그래밍과 유사하게 코드를 이해해야 한다. 반면에 SQL은 직관적으로 하나의 SQL상에서 데이터 가공을 수행할 수 있으므로 좀 더 이해가 쉽다(개인 성향에 따라 의견이 다를 수 있음)
02 Pandas 가 편한 이유
1. 특정 컬럼값을 가공해서 새로운 컬럼값으로 만들거나, 기존 컬럼값을 새롭게 update하거나, 기존 컬럼값의 타입을 변경하는 경우가 빈번하게 많을 경우
- SQL은 create table이나 update를 컬럼별로 변경/추가 사항이 있을 때만 빈번하게 수행하기는 어렵다.
2. 분산, 표준편차, z-score 변환 등 다양한 통계 기반의 가공이 필요할 경우
- Pandas는 자체적으로 가지고 있는 통계 함수외에도 기존 파이썬의 과학/통계용 scify나 numpy 그리고 사이킷런의 함수와도 잘 호환되기 때문에 SQL Analytic으로도 커버할 수 없는 다양한 통계 기반의 가공이 가능하다.
3. 머신러닝/시각화 패키지와 바로 호환된다.
- 사이킷런이나 시본에서 바로 사용 가능하다.
4. 빠르다.
- 덕분에 여러가지 데이터 가공을 다양하게 수행해 볼 수 있다.
5. 프로그램적으로 For loop 를 돌려서 컬럼별 데이터를 확인하거나 가공할 수 있다.(개인 성향에 따라 의견이 다를 수 있음)
- 절차적인 스타일링 프로그램으로 데이터 가공 처리를 원하는 분에게는 적합 할 수 있습니다.
'전처리 > SQL' 카테고리의 다른 글
SQL 코드카타 복습 모음 (0) | 2024.02.22 |
---|---|
2024 SQLD 1과목, 2과목 요약 정리 (다음글도 참고) (0) | 2024.02.20 |
SQL 코드카타 : 66번~68번(CONCAT, UNION, 처음보는(오라클식)) (1) | 2024.01.30 |
[예습] SQL JOIN 뽀개기 + UNION 추가 (0) | 2024.01.30 |
DBeaver 컬럼 이름 변경하기 -> 에러 해결 방법 (1) | 2024.01.11 |