데이터 분석 트랙 20일차 (25.03.17.) TIL
[목차]
- 파이썬 종합 <문법> "조건문", "반복문"
- 라이브세션 2회차 정리 [라이브러리 활용 코드위주]
- 파이썬 종합>문법> "조건문", "반복문"
1. 조건문
- 정의 : 특정 조건이 참인 경우에 특정 코드블록을 실행하는 코드
- 기본 형태
if 조건:
if 조건이 참일 때 수행할 코드
elif 앞선 조건과 다른 조건:
elif 조건이 참일 때 수행할 코드
else:
앞선 조건이 거짓일 때 실행될 코드
- 유의사항 : ":"기호와 들여쓰기를 통해 if의 참일 때의 조건, 수행할 내용의 범위가 정해지기에 들여쓰기를 반드시 수행해야한다.
- 조건에는 비교연산자('<', '>', '=', '!'), 논리연산자('and', 'or', 'not')이 사용될 수 있다.
- 삼항연산자 : 조건문의 조건과 참, 거짓의 값을 한 문장으로 표현하는 방식으로 "삼항연산자의 이름 = (참일때의 값 if 조건1 else 거짓일때의 값)”의 형태를 가진다.
2. 반복문 > "for문"
- 특정 데이터에 대하여 반복적인 행동을 수행해야 될 때 사용하는 코드!
- 기본 형태
for 변수 in 반복 수행할 데이터:
수행할 내용
# 반복 수행할 데이터 : 리스트, 튜플, 문자열과 같은 반복이 가능한 데이터 타입이 해당된다.
# 변수 : 반복 수행할 데이터를 하나의 범위로 그 요소 하나하나의 값을 담는다.
# 수행할 내용 : 반복수행할 데이터의 요소를 하나하나 담은 변수에 수행할 내용을 의미한다.
2.1. 활용 사례
A. range(start, stop, step)함수 사용
for num in range(5):
print(num) # 1부터 4까지("5-1")의 숫자를 생성하는 range함수의 값을 num에 담에 하나하나 출력한다!
- 딕셔너리에 반복문이 수행될 시 딕셔너리는 키 값과 벨류 값이 있기에 변수를 2개 이상 설정해야 한다.
ex.
person = {"name": "John", "age": 30, "city": "New York"}
for key, value in person.items():
print(key, " : ", value)
B. 문자열에서 특정 문자 제거하기
변수1 = "Onion"
제거한 뒤의 문자를 담을 변수 = ""
for 반복변수1 in 변수:
if 반복변수1 != "o":
제거한 뒤의 문자를 담을 변수 += 반복변수1
print( 제거한 뒤의 문자를 담을 변수) # "Onin"
C. 딕셔너리에서 특정 조건에 맞는 항목 출력
My_dict = {"week1" : '72', "week2" : '75', "week3" : '74', "week4" : '74.5'}
for 변수1, 변수2 in My_dict:
if 변수2 > 74:
print(변수1, "is Good result of personal training")
D. 결측치 처리
data = [10, 20, None, 30, 40, None, 50]
cleaned_data = []
for d in data:
if d is not None:
cleaned_data.append(d)
print(cleaned_data) # ['10', '20', '30', '40', '50']
3. 반복문 > "while문"
- 조건을 만족하는 동안 코드블록을 반복적으로 실행!
- 특정 조건이 참(True)일 대에만 실행, 조건이 거짓(False)이 될 때까지 반복!
- 기본구조
while 참에 대한 조건:
조건이 참일 시 반복 수행할 내용
# 수행하는 결과물이 다시 조건에 대하여 거짓인 값을 반환할 때까지 반복수행내용은 반복된다.
# for 반복문은 반복할 데이터라는 범위가 있기에 큰 문제는 되지 않으나 while 반복문은 반복수행 내용이 거짓이 나오지 않으면 계속해서 반복 수행한다. 그렇기에 무한루프에 빠지지 않게 "조건을 잘 지정"하거나 "정지를 위한 추가문"을 작성해야 한다.
3.1. "while문"의 반복을 정지하는 코드
a. break문 : 반복문의 반복 수행 내용할 내용 외에 특정 조건을 만족할 시 수행할 내용을 지정하여 반복수행으로 복귀하지 않게 하는 구문[즉, 반복 수행 도중 특정 조건을 만족하면 수행할 내용을 수행하여 반복에서 벗어난다. 강제로 반복을 멈춘다!]
ex.
while True:
user_input = input("Type 'quit' to exit: ")
if user_input == 'quit':
break
print("You typed:", user_input) # 유저의 타이핑입력을 반복해서 받다가 유저가 quit을 입력시 You typed:와 유저가 타이핑한 내용들을 출력하며 반복을 멈춤.
3.2. pass문 : 반복수행의 내용 중에서 특정 조건을 만족할 시 해당 인자를 받은 요소에 반복수행의 내용을 적용하지 않고, 다음 반복 수행할 데이터의 인자에 조건 및 반복 수행으로 넘어가는 것.
# 즉, 특정 조건을 만족하는 인자는 반복수행을 하지 않겠다는 의미!
3.3. continue문 : 반복 수행의 내용 중에서 특정 조건을 만족할 시 해당 인자를 받은 요소에 반복수행의 내용을 적용한다. 조건을 만족하지 않는 인자는 continue문의 후술 조건을 시행한다.
# pass와 continue는 반복문을 멈춘다기 보다는 반복의 조건을 까다롭게 하는 것! 즉, 사용 시 범위를 잘 정해둬야 한다.
- 파이썬 라이브세션 2회차
1. 파이썬 라이브러리 활용 기본코드
1.1. Pandas 라이브러리의 기능과 활용
- 라이브러리 설치 및 데이터 불러오기
ㄱ. 라이브러리 설치 및 불러오기
(1) 파이썬의 터미널 창을 연다“shift + ctrl + ~”
(2) "pip install 라이브러리 명"을 입력 + enter
(3) 파이썬 코드블록으로 돌아와 “import 라이브러리명”을 통해 라이브러리를 불러온다.
ㄴ. 데이터 불러오기 [pandas라이브러리 활용, 현재 판다스 라이브러리 호출 상황]
- 구글 코랩
from google.colab inport drive
drive.nount('/content/drive') # 구글 드라이브에 파일을 불러와야 한다.
pd.read_확장자명(" ‘파일저장경로' /파일명.확장자명") # 최종적으로 판다스의 read기능을 통해 파일을 불러온다.
ㄷ. 데이터 저장하기 : data.to_csv("파일명.csv", index=False)
- 기본값은 index=true 즉, 데이터를 저장할 때 nonamed 인덱스가 하나의 컬럼으로서 저장된다. "저장 할 때 index를 지정"하거나 "index=False"를 사용하거나 데이터를 불러올 때 "pd.read_확장자명("파일명.확장자명")"형식에서 소괄호 내 확장자명 옆에 쉼표 후 "index=0"이나 " index=컬럼명"을 통해 인덱스를 불러와야 noname 인덱스와 같은 불필요한 컬럼이 생기지 않는다.
cf) 엑셀같은 파일을 불러올 때 에러가 발생하는 경우가 있음. 이 경우 파이썬에 엑셀이 연결되지 않은 상황 ∴ 터미널을 열어서 pip install openpyxl
ㄹ. 판다스 라이브러리 기능들
- 데이터 프레임명 뒤에 다음의 기능들이 붙는다.
".read_확장자명("데이터파일명.확장자명)"[데이터 파일 읽기] # 파일 불러오기
".display(컬럼명1, 컬럼명2, ....)" # 컬럼의 내용 확인하기(컬럼을 지정하여 불러올 수 있음)
".head()" ".tail()" # 데이터 테이블의 처음 혹은 마지막 5개의 행 데이터를 확인 (기본값=5, 소괄호 내 숫자를 통해 가져올 행의 개수 설정 가능)
".shape" # 테이블의 행과 열의 갯수를 반환한다.
".dtypes" # 테이블 내 컬럼의 데이터 타입을 확인
".columns" # 테이블 내 컬럼명을 확인한다.
".values" # 테이블 내 각 행들을 배열 형태로 확인한다.
".info()" # 테이블의 기본 구조를 확인한다. [NaN값, 행의 갯수, 컬럼의 갯수, 각 컬럼의 데이터 타입 등등]
".descrive()" # 테이블의 기초 통계 정보를 확인한다. [전체 행 갯수(count), 평균(mean), 표준편차(std), 최솟값, 최댓값, 사분위수, 등등]
"df.isnull()" # 테이블의 값 중에서 결측치는 True로 결측치가 아닌 것은 False로 값을 바꿔 표현한다.
"df.isnull().sum()" # 컬럼별로 결측치의 갯수를 확인한다.
cf) len(데이터프레임명) : 테이블의 가로 길이를 확인 가능 즉, 컬럼이 몇 개인지 확인!