데이터 분석 트랙 21일차 (25.03.18.) TIL
[목차]
- 파이썬 <문법> 종합 : 함수
- 아티클 스터디 - "비개발자를 위한 엑셀로 이해하는 SQL : WHERE와 ORDER BY"
- 파이썬 <문법> 종합 : 함수
1. 함수
1.1. 함수 기본
- 어떠한 값을 입력받아 어떠한 수행을 통해 결과물을 출력하는 일련의 코드블록
- 특정 함수명을 지정하여 그 수행내용을 담을 경우 어디서든 그 함수를 호출하여 내용을 수행할 수 있음.
- 활용 : "코드의 재사용", "프로그램의 소범위 다량의 모듈을 개발 및 관리", "함수 기능의 확장 및 수정을 통한 유지 보수"
- 기본 함수 정의 및 호출 형식
A. 함수 정의
def 함수명(매개변수1, 매개변수2, ....)
변수를 통해 수행할 작업
return 결과값 # 여기서 return 구문은 함수의 내용에 따라 선택적으로 사용한다.
B. 함수 호출
변수1 = 함수명(인수1, 인수2, ......)
1.2. 함수의 활용
A. 문자열의 각 문자 요소별 출현빈도를 딕셔너리로 반환
def 함수명(문자변수):
결과를 반환할[담을] 비어있는 딕셔너리명 = {}
for 변수 in 문자변수:
if 변수 in 결과를 반환할[담을] 비어있는 딕셔너리명:
결과를 반환할[담을] 비어있는 딕셔너리명[변수] += 1 # 변수[문자의 각 요소]를 딕셔너리의 키값으로 하여 그 벨류[현재는 문자변수에 등장한 빈도]에 +1을 한다!
else:
결과를 반환할[담을] 비어있는 딕셔너리명 = 1 # 변수[문자의 요소]가 없을 때 그것을 키값으로 설정하고 그 벨류[문자변수의 빈도]를 1로 설정한다.
return 결과를 반환할[담을] 비어있는 딕셔너리명 # {'문자 요소1' : 출현빈도1, '문자 요소2' : 출현빈도2, ......}
1.3. 함수 관련 심화 내용
A. 지역변수 vs 전역변수
- 전역 변수(Global Variables) : 프로그램 전체에서 접근 가능한 변수, 어디서든 사용 가능하며 여러 함수에 공통으로 사용되는 값을 저장할 시 유용하다
- 지역 변수(Local Variables) : 특정 범위(ex. 함수 내부)에서만 접근 가능한 변수, 해당 범위를 벗어나면 사용할 수 없다. 메모리 관리에 효율적이다.
- 함수내에서 전역변수를 수정 가능 # 함수에서 지역변수로서 값을 덧씌우거나, global 기능을 이용 전역변수에 담긴 값을 수정한다.
B. 인수(argument) vs 매개변수(parameter)
- 매개변수(parameter) : 함수를 정의할 때 함수가 받아들이는 값을 지정하는 변수
- 인수(argument) : 함수를 호출할 때 함수에 전달되는 값 # 함수를 호출할 때 전달되는 실제 값이기에 호출할 때마다 다를 수 있다.[전달인자]
C. 위치 인수(Positional Arguments), 키워드 인수(keyward Arguments), 기본값(Default Values)
- 위치 인수(Positional Arguments) : 함수 정의 시 함수 내용에서 매개변수의 위치에 따라 전달되는 인수
ex.
이름:나이 딕셔너리 = ['Jhon':30, 'Wick':'50']
def 함수명(이름 위치변수, 나이 위치변수)
이름 위치변수, 나이 위치변수 = 이름:나이 딕셔너리.item
위치 변수를 통한 함수의 수행내용
# 즉, 매개변수가 담는 값이 먼저 나온 순서대로 딕셔너리의 키값, 벨류값을 담는다. 위치인수는 이처럼 함수를 통해 특정 자료의 여러 요소들을[딕셔너리의 키와 벨류, 리스트 안의 시퀸스타입 데이터들의 값, 등등] 받아 함수 내부의 변수로서 작동한다.
- 키워드 인수 (keyward Arguments) : 함수 호출 시 함수 내용 수행 전에 미리 지정하는 값 [특정 자료의 요소로서 변수가 아닌 값 자체가 들어가는 경우! 혹은 딕셔너리의 키 변수명같이 벨류 값이 연동되는 인수]
# 함수선언
어떤 딕셔너리 = {'값1':벨류값1, '값2':벨류값2}
def 함수명(매개변수1, 매개변수2)
수행내용
# 위와 같은 상황에서 함수 호출
함수명(매개변수1='값1', 매개변수2='값2')
# 즉, 매개변수에 딕셔너리의 키에 해당하는 변수가 들어가는 경우 그 벨류값이 함수 내부 수행을 받는다.
- 기본값(Default Values) : 함수 선언 시 함수 내용에 적용되기 전에 미리 설정, 지정하는 값
# 함수 선언 시 기본값
def 함수명(매개변수1, 매개변수2=기본값1):
수행 내용
D. 가변 인수(Variable-length Arguments)
- 여러 개의 인수들을 받는 함수를 만들기 위해 가변 인수 활용 가능
- '*args' : 함수를 호출할 때 임의의 개수의 위치 인수를 함수내부에 전달하는 옵션
- '**kwargs' : 함수를 호출할 때 임의의 개수의 키워드 인수를 함수 내부에 전달하는 옵션
ex. '*args'활용 위치 인수 받기
def sum_values(*args):
total = 0
for num in args:
total += num
return total
result = sum_values(1, 2, 3, 4, 5)
print("합계:", result) # 출력: 합계: 15
ex. '**kwargs'활용 키워드 인수 받기
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=30, country="USA")
1.4. 데이터 분석에 사용하는 함수들
A. 데이터 전처리 함수
- 표준화 함수 : 표준화는 데이터의 평균을 0, 표준편차를 1로 만드는 작업을 의미한다. 주로 데이터의 분포를 정규분포로 만들거나 머신러닝 알고리즘의 가우시안 분포를 만족시키기 위해 사용된다.
형태)
def stadardization(data):
scaled_data = (data - data.mean()) / data.std())
return scaled_data
- 결측치 처리 함수 : 데이터 수집 과정에서 측정되지 않거나 저장되지 않은 값을 대체하는 함수
# dropna처럼 결측치 제거가 유용하나 결측치가 포함된 부분이 필요할 경우 그를 대체하는 함수이다.
형태) 평균값으로 결측치부분을 채우는 함수
def impute_missing_values(data):
filled_data = data.fillna(data.mean())
return filled_data
- 데이터 정규화 함수 : 정규화는 데이터를 일정 범위로 변환해 비교, 분석하기 위한 작업으로 0~1, -1~1사이의 값으로 변환시킨다. [정규분포를 이용한 거리계산, 유사도와 산포도와 관련한 데이터를 얻기 위해 사용할 수 있다.]
def nomalization(data):
scaled_data = (data - data.min()) / (data.max() - data.min())
return scaled_data
- 데이터 시각화 함수 : 파이썬 matplotlib라이브러리를 활용한 시각화에서 사용하는 함수이다.
# 차후 시각화 정리 부분에서 다시 정리
- 아티클 스터디 - "비개발자를 위한 엑셀로 이해하는 SQL : WHERE와 ORDER BY"
https://yozm.wishket.com/magazine/detail/1747/
비개발자를 위한 엑셀로 이해하는 SQL: 3 WHERE와 ORDER BY | 요즘IT
앞선 글에서 일반 사무직으로서 우리가 친숙한 엑셀(Excel) 데이터 조회 사례를 빗대어, SQL에서의 기초 문법인 FROM과 SELECT를 살펴보았다. 이어지는 글에서는 데이터를 조회 및 추출하는 차원에서
yozm.wishket.com
- 내용 요약
1. “WHERE” 특정 조건에 부합하는 데이터 고르기
- 우리는 데이터를 모두 필요로 하는 경우가 있지만 특정 조건과 기준에 부합하는 정보를 골라 조회하는 경우가 대다수이다.
SQL의 WHERE문법은 그 역할을 수행한다.
1.1. WHERE에서 사용하는 특정조건의 5분류
A. 논리연산자 : “=”, “!=”
B. 비교 연산자 : “>”, “<”. “>=”, “<=”
C. 특정 범위, 목록포함 여부 : “BETWEEN - AND -", "IN", "NOT IN"
D. 특정 문자열 포함 여부 : LIKE'%', NOT LIKE'%'
E. 값의 유무 : 'IS NULL', 'IS NOT NULL'
2. “ORDER BY” 조회한 데이터의 정렬방법
- 데이터를 특정 컬럼 혹은 컬럼들을 기준으로 정렬하여 조회하고자 할 때 사용한다.
2.1. 데이터 정렬 방법
A. 오름차순 정렬 : ORDER BY 컬럼명 (ASC)
B. 내림차순 정렬 : ORDER BY 컬럼명 DESC
- 인사이트
- 비개발자[무경험자]를 타겟팅하여 SQL의 기본적인 문법요소를 엑셀의 사례에 대입하여 간단히 SQL이 무엇인지 소개하는 글이다. 시각화 자료가 효과적으로 사용되어 구문이 어떻게 사용되는지 연상하기 쉬웠고, 부가적인 설명을 통해 이해를 확장하기에 좋았다.
- 핵심개념 : WHERE문법, ORDER BY문법, 연산자