SQL
concat():
- 문자열 결합 함수
- 여러개의 열(Column)이나 문자열 값을 하나로 합칠 때 사용
CONCAT(string1, string2, ...)
-
- 다중 결합: 2개 이상의 인자를 받아 순서대로 이어 붙입니다.
- NULL 처리 주의: 데이터베이스(MySQL 등)에 따라 인자 중 하나라도 NULL이면 결과값이 전체 NULL이 될 수 있음. (이럴 땐 CONCAT_WS나 COALESCE를 사용합니다.)
- 활용 사례: 성(last_name)과 이름(first_name) 합치기, 주소 생성 등
- 실무에서는 NULL 값이 섞여 들어오는 경우가 많음. CONCAT(ISNULL(col, ''), ...) 처럼 NULL 처리를 함께 설명
substr():
- 문자열 자루기 (부분 문자열 추출)
- 문자열의 특정 위치에서 원하는 길만큼 데이터를 뽑아낼 때 사용
- substring()과 동일하게 작동
- 숫자형 데이터에 사용해도 내부적으로 문자열로 자동 형변환(Casting)되어 처리되는 경우가 많다
SUBSTR(string, start, [length])
-
- 인덱스 시작: 대부분의 SQL에서 인덱스는 1부터 시작합니다 (0이 아님에 주의!).
- 음수 인덱스: start에 음수를 넣으면 문자열의 끝에서부터 거꾸로 위치를 잡습니다. (예: -3은 뒤에서 세 번째 글자)
- 생략 가능: length를 생략하면 시작 위치부터 문자열 끝까지 모두 가져옵니다.
- 활용 사례: 생년월일 데이터에서 '월'만 추출하기, 전화번호 뒷자리 자르기 등
datediff():
Python
"".join(리스트):
- 리스트를 문자열로 변환
- 리스트 안에 담긴 문자열 요소들을 하나의 문자열로 합칠 때 사용하는 메서드
'구분자'.join(iterable)
-
- 성능: + 연산자로 문자열을 계속 더하는 것보다 메모리 효율과 속도가 훨씬 빠릅니다.
- 유연성: 구분자("", ", ", \n 등)를 자유롭게 지정할 수 있습니다.
sorted():
- 데이터 정렬
- 반복 가능한(Iterable) 객체를 정렬하여 새로운 리스트 반환
sorted(iterable, key=옵션, reverse=True/False)
-
- 원본 보존: list.sort()는 원본을 바꾸지만, sorted()는 원본을 건드리지 않습니다.
- Key 활용: key=len 처럼 정렬 기준을 함수로 전달할 수 있어 매우 강력합니다.
re.split():
- 정규표현식(Regular Expression)을 사용하여 여러 개의 구분자를 동시에 지정하거나 복잡한 패턴을 기준으로 문자열을 나눌 수 있음.
re.split(pattern, string, maxsplit=0, flags=0)
-
- pattern: 나눌 기준이 되는 정규표현식
- string: 대상 문자열
- maxsplit: 최대 몇 번 나눌 것인가 (기본값 0은 제한 없음)
- 구분자가 연속으로 나올 때, +를 붙이지 않으면 빈 문자열('')이 결과에 포함되지만, +를 붙이면 "하나 이상 반복되는 구분자"를 한 덩어리로 취급
- ex)
re.split('[ ,#]+', s)
=> 변수 s를 구분자 ' '(공백), ','(쉼표), '#'(샵) 중 하나라도 발견되면 그 위치를 기준으로 문자열을 자르되, 기호들이 연속해서 나오면 하나로 묶어서 처리
- [ ,#]: 대괄호(Character Class)는 안에 들어있는 문자들 중 아무거나 하나와 일치하면 된다는 뜻. 여기서는 공백( ), 쉼표(,), 샵(#) 세 가지가 후보.
- + (중요!): 앞서 언급하신 수량자. "하나 이상 반복됨"을 의미.
- 예를 들어 ,### 처럼 기호가 여러 개 겹쳐 있어도 +가 있으면 이를 하나의 구분자로 인식해서 빈 문자열이 생기지 않게 막아줍니다.
- s: 분리할 대상이 되는 원본 문자열 변수.
repr()
zip()
set()
enumerate()
json.dumps()
json.loads()
'개인공부' 카테고리의 다른 글
| 데이터 전처리 & 시각화 26.01.16(금) (0) | 2026.01.17 |
|---|---|
| 데이터 전처리 & 시각화 26.01.15(목) (0) | 2026.01.15 |
| 데이터 전처리 & 시각화 26.01.14(수) (0) | 2026.01.14 |
| [개인공부] 주말 ETL 3주차 26.01.10(토)~11(일) (1) | 2026.01.11 |
| [개인공부] 주말 ETL 1주차 25.12.27(토)~28(일) (0) | 2025.12.28 |