카테고리 없음

데이터 분석 트랙 20일차 (25.03.17.) TIL

jjaio8986 2025. 3. 17. 22:50

[목차]

  • 파이썬 종합 <문법> "조건문", "반복문"
  • 라이브세션 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(데이터프레임명) : 테이블의 가로 길이를 확인 가능 즉, 컬럼이 몇 개인지 확인!