본문 바로가기

데이터 분석/데이터 분석 부트캠프

[패스트캠퍼스] 데이터 분석 부트캠프 8기 5주차 학습일지

반응형

 

23.03.17 ~ 23.03.23 동안 부트캠프에서 배웠던 내용을 정리한 학습일지입니다.

5주차에는 Python을 집중적으로 배웠습니다.

Python의 경우 내용이 너무 많아서 정리하는데 어려움을 느끼고 있는데요... ㅠ

그래서 학습일지에는 간략하게 기본 개념에 대한 내용만 적고 

Python 폴더에 실습 내용을 따로 작성할까 합니다!

 

Python 기초 문법 노션 링크: https://solar-geology-c0d.notion.site/Python-0c245c04717e4e4e8d76941411b0222f

Python 라이브러리 노션 링크 : https://solar-geology-c0d.notion.site/Python-d791f4cf35944455ba505051641d306a

 

(+ 노션 라이브러리 부분의 경우 내용 추가 중에 있습니다.

실강이나 인강으로 듣는 내용은 많은데 제가 다 소화하지 못한 것과 내용 정리를 같이 하니까 시간이 배로 드네요😣

내용을 다 추가하고 나면 이 부분은 지우도록 하겠습니다!)

(+ 추가 완료)


부트캠프 5주차 - 2023.03.17 ~ 2023.03.23  "데이터 분석을 위한 파이썬 프로그래밍 활용"

 

 

 

1. Python특징

 💡 Python 특징

  1. Python에서는 변수에 값을 주면, 자동으로 data type이 결정됨.
  2. Python 들여쓰기를 이용해서 code block을 구분함.
  3. Python은 문자열을 굉장히 편하게 사용할 수 있음. (문자열(str)이라는 data type이 따로 존재)
  4. Python은 line by line으로 실행이 가능함. 

 

 


 

2. Data Type

💡 Data Type: 프로그래밍 언어가 이해하는 사용자(프로그래머)의 데이터의 사용 의도를 정의한 것

  • Data Type은 우리가 사용하는 데이터를 컴퓨터가 이해할 수 있게 규격화한 것.
  • 컴퓨터는 정의된 데이터 타입을 통해서 해당 수치값이 어떤 의미인지 이해하고 계산할 수 있게 됨.

 

<종류>

  • int: 정수
  • float: 실수 (소수)
  • str: 문자열
  • list: 자유롭게 변경이 가능한 여러 개의 데이터 묶음
    • append() : 새로운 아이템 추가
    • clear(): 모든 아이템 삭제
    • pop(index): 인덱스를 통해 아이템을 제거 후, 그 아이템 값을 반환
    • remove(value): 값을 통해 아이템 제거
    • del(): 인덱스나 슬라이스로 아이템 제거; 여러 개의 요소를 한 번에 지울 수 있음
  • tuple: 생성 후에 변경이 불가능한 여러 개의 데이터 묶음
  • set: 집합
  • dict: key - value store 방식을 가지고 자료를 저장하는 구조

 

 


 

3. IF문

💡 IF: 조건에 따라 다른 명령을 수행하는 statement (조건문, conditional statement)

 

# if statement syntax example

if condition:
	<statement>
	<statement>
  ...
elif condition:
	 <statement>
	...
else:
	<statement>

 

  • python에서는 조건문을 if statement로 다룸.
  • 프로그램의 규칙은 모든 조건에 따른 분기에 따라 결정됨.

 

[문제] : 날씨에 따라 롱패딩을 입을지 코트를 입을지 고민이다. 기온이 5도 이상이면 코트를, 그 아래이면 패딩을 입는다고 출력하는 if문 생성

current_temp  = 10

if current_temp >= 5:
    print('코트를 입어야겠다')
else: 
    print('패딩을 입자')

'''
코트를 입어야겠다
'''

 

 

 


 

4. for, While

💡 for, While: 조건에 따라 반복 작업을 수행해야 할 때 사용하는 statement (반복문, iteration)

 

python에서는 for, while statement로 반복 수행을 다룸.

 

# while statement syntax example

while condition:
	<statement>
	<statement>
	...

 

  • while statement는 조건에 따른 반복 수행을 진행.
  • 조건에 만족하는 동안 명령을 수행.
  • 특정 횟수를 반복하는 게 아닌, 조건의 만족 여부에 따라 반복을 수행.

 

 

[문제]: 1부터 10까지 더하면서 더한 값을 출력하는데 더한 값이 10보다 크면 빠져나오기

sum = 0
i = 1

while sum < 10:
    sum += i
    i += 1
    print(sum)

'''
1
3
6
10
'''

 

 

[문제 2] : while true와 input 함수를 이용해서 코드 실행 종료 버튼 생성

while True:
    Input = input('종료하려면 q를 입력해주세요')
    if Input == 'q':
        print('종료합니다.')
        break
    else: 
        print(f'{Input}은 종료코드가 아닙니다. 다시 입력하세요')
        pass

 


 

 

# for statement syntax example

for iterator in iterable_objet:
	<statement>
	<statement>
	...

 

  • for statement는 횟수에 따른 반복 수행을 진행.
  • 특정 횟수를 지정할 수도 있고, list 같은 경우 sequence를 처음부터 끝까지 반복하게 할 수도 있음.
  • 주어진 여러 개의 데이터를 순서대로 다룰 때 많이 사용.

 

[문제 1]: 1부터 10까지 더하면서 더한 값을 출력하는데 더한 값이 10보다 크면 빠져나오기

sum = 0

for i in range(1,11):
    sum += i
    print(f'{i}번째까지의 숫자 합은 {sum}입니다')
    print('---------')

    if sum > 10:
        print(f'{i}번째까지의 숫자 합은 {sum}입니다. 10보다 커 종료합니다.')
        break

'''
1번째까지의 숫자 합은 1입니다
---------
2번째까지의 숫자 합은 3입니다
---------
3번째까지의 숫자 합은 6입니다
---------
4번째까지의 숫자 합은 10입니다
---------
5번째까지의 숫자 합은 15입니다
---------
5번째까지의 숫자 합은 15입니다. 10보다 커 종료합니다.
'''

 

[문제 2]: for문을 사용해 구구단 2단부터 9단까지 출력

for i in range(2,10):
    for j in range(1,10):
        result = i * j
        print(f'{i} x {j} = {result}')
    print('-----')

'''
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
-----
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
...
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81
-----
'''

 

 

 

 


 

5. Function

💡 Function: 한 가지의 기능을 하는 코드 묶음. input을 받아서 처리하고 output을 돌려주는 코드

 

  • 함수(function)는 기능을 의미.
  • 함수의 input을 parameter(또는 argument)라고 함.
  • 함수는 input을 받아서 주어진 기능대로 처리한 뒤, output을 return 함.
  • 정의한 함수를 사용하는 것을 function call이라고 함.

 

# function definition syntax example

def function(a, b):
	something = ...
	<statement>
	<statement>
	...
	return something

result = function(3, 5)

 

  • def <function_name> (<parameter1>, <parameter2>, …)의 형태로 함수 prototype을 지정.
  • 함수를 호출하면 정의한 code block내의 코드를 실행
  • 함수의 input인 parameter에 어떤 값이 들어오고, 어떤 결과를 return 할지 정해야 함.
  • 함수를 사용하면 코드를 구조화하기 쉬움.
  • 코드의 구조화가 잘되어 있으면, 가독성도 높고 유지/보수하기 편함.

 

 

[문제 1] : 1~10까지 범위에서 홀수만 담는 리스트를 만드는 함수 생성

def odd_list(x):
    l = list()
    for i in x:
        if i % 2 != 0:
            l.append(i)
    return l


x = range(1,11)
odd_list(x)

'''
[1, 3, 5, 7, 9]
'''

 

 

[문제 2]: 입력값이 1을 더한 값을 반환하는 함수 a와 입력값을 두배로 곱한 값을 반환하는 함수 b를 만들고 함수 a, b를 사용해 입력값에 1을 더하고 두배로 곱한 값을 반환하는 함수 c 생성

def function_a(x):
    return x + 1

def function_b(x):
    return x * 2


def function_c(x):
    a = function_a(x)
    b = function_b(a)

    return b

 

 

 

 


6. 파일 읽기

 

# filein/fileout example

with open('data/a.txt', 'r', encoding = 'utf-8') as f:
	data = f.readlines()

 

  • 파이썬에서는 with open() 함수를 통해서 텍스트 파일을 쉽게 불러올 수 있음
  • with open() 함수를 사용하는 경우 file close()를 따로 명시 안 해도 됨. 자동으로 열고 닫음.
  • ‘r’, ‘w’, ‘a’ 등의 mode를 바꿔서 파일을 다른 옵션으로 열 수 있음
    • r read) : 읽기 모드
    • w (write) : 쓰기 모드. 여는 순간 기존 내용이 날아감
    • a(append) : 추가 모드. 앞에 있는 내용을 수정하지 않고, 뒤에 내용 추가하는 기능
  • 다른 타입의 파일을 열기 위해선 다른 라이브러리들이 필요
    • e.g png, jpg 파일을 열기 위해 PIL, opency 라이브러리 사용
    • e.g pk, pkl 파일을 열기 위해 pikle 라이브러리 사용 (파일 타입이 binary라서, ‘rb’를 써야 함)
    • e.g csv, excel 파일을 열기 위해 pandas, csv, openpyxl 라이브러리 사용

 

 

with 함수를 이용해서 파일 생성, 읽기, 내용 추가하기

#with 함수를 이용해서 파일 생성, 내용 입력하기
with open('new_file.csv', 'w', encoding= 'utf-8') as f:
    f.write('Life is too short, you need python')


#내용 여러개 입력하기
with open('new_file.csv', 'w', encoding= 'utf-8') as f:
	for i in range(1,11):
		f.write(f'{i}번째 줄입니다.')

----

#파일 읽기
with open('new_file.csv', 'r', encoding= 'utf-8') as f:
    print(f.read())


#파일에 내용 추가하기
with open('city_temp.csv', 'a', encoding= 'utf-8') as f:
	f.write(city + ' ' + temp + '\n')

 

 

 

 

 

 

+ 기본 개념에 해당하는 내용을 위주로 정리했습니다

 

부트캠프를 신청한 이유 중 하나가 파이썬 프로젝트를 진행하는 건데

다음 주면 파이썬 EDA 프로젝트의 OT가 있습니다...! 

벌써 한 달이나 됐다니 시간이 정말 빠르네요 ㅎㅎ

 

아직까지 한 번도 지각과 결석을 하지 않은 제 자신에 박수를 보내며

남은 시간도 열심히 불태워 보겠습니다🔥🔥

 

 

 

반응형