2026/03/24 Tue.
코드카타 1문제 ( https://qc-standard.tistory.com/23 )개인과제 제출파이썬 5강아티클 스터디 ( https://qc-standard.tistory.com/22 )- 라이브 세션 복습
TIL
⊙ 파이썬 5강
파일 불러오기
● 파일 확장자
: CSV (.csv) - Comma Sparated Values 약자로 데이터를 쉼표로 구분
: Excel 파일 (.xls .xlsx)
: JSON (.json) - Java Script Object Notatio 약자
: 텍스트 파일(.txt .dat 등)
● pandas 라이브러리에서 불러오면 쉬움
: import pandas as pd
df = pd. read_csv('file_csv')
= pd. read_excel('file_xlsx')
패키지(라이브러리) 사용하기
● 패키지는 관련된 여러 개의 모듈(함수)을 포함하는 디렉토리
● ex) numpy 와 matplotlib은 여러 모듈을 포함하는 패키지
● 패키지는 데이터 분석을 위한 다양한 작업 수행에 필수 → 데이터 수집, 전처리, 시각화, 모델링, 통계분석 등 여러 기능 제공
● 패키지 맨 처음 사용할 패키지를 한번에 불러놓고 사용하면 편리 → 패키지를 추가했는데 확인할 필요 없음

● 패키지 종류
| pandas | numpy | matplotlib | seaborn | scikit-learn | statsmodels | scipy | tensorflow | pytorch |
| - 데이터 조작, 분석에 용이 | - 과학적 계산에 용이 - 다차원 행렬 연산 (열이 많은 데이터 = 다차원 행렬) |
- 데이터 시각화 | - 시각화 패키지 - matplotlib보다 시각적으로 예쁨 |
- 머신러닝 다룰 때 많이 사용 |
- 통계 분석 | - 수학, 공학 계산 | - 딥러닝 패키지로 유명 - 구글에서 만든 코드 |
- 딥러닝 패키지로 유명 - Meta(구 페북)에서 만든 코드 |
| - pyplot을 as를 사용해 plt로 축약해서 사용 | - 자주 사용하지는 않음 | |||||||
포맷팅(formatting)
● print 함수와 비슷
● 변수와 문자를 다양하게 출력해야하는 상황에 용이

● 기존 print 함수는 " " 쓰고 ,콤마로 구분
● 포맷팅은 변수에 {}중괄호를 써서 사용
→ 콤마로 구분 하지 않아도 됨
● 앞에 f를 써서 formatting사용을 알려줌? : f-string 방법
● 예시


: 결과값에 설명을 더한 풍부한 결과값을 도출할 수 있음
리스트 캄프리헨션
● 리스트 : 여러 개의 값을 담는 데이터 타입 - 값을 하나씩 넣고 콤마로 구분
● 리스트의 내용을 한번에 채울 수 있는 방법
● 반복문과 조건문을 사용하여 생성
[표현식 for 항목 in iterable if 조건문]
● 예시





lambda
● 임시로 지정한 함수
● 기존 함수보다 간결한 함수 → 편리
● 일반 함수는 여러줄의 코드 블록인 반면 람다는 한줄의 코드 블록
● 데이터 분석할 때 용이
● 모든 상황에서 lambda를 사용할 수 없음
● 예시

#add라는 변수에 무언가를 담을 건데
#lambda라는 함수를 만들어 줌
#x,y는 매개변수 - 함수 내에서 사용하는 변수
#콜론 다음에 수식을 쓰면 됌
#함수
#x_y_cal 함수 이름 / 매개변수 x,y
● 리스트의 요소 필터링
filter(조건 함수, 반복 가능한 데이터)
filter?
(필터라는 내장함수) 여러 개의 데이터로부터 조건을 충족하는 데이터만 추출할 때 사용하는 함수

#lambda 함수 - 짝수인 경우가 조건으로 들어가 있음
● 리스트 각 요소에 제곱
map(함수, 반복 가능한 데이터)
map?
(맵이라는 내장함수) 여러개의 값을 받아서 각각의 값에 함수를 적용한 결과를 반환한 내장함수

glob
● 파일 시스템에서 파일을 찾을 때 사용되는 유용한 도구
import glob
# 현재 경로의 모든 파일을 찾기
# * - 모든을 뜻함
file_list1 = glob.glob('*')
# 단일 파일 패턴으로 파일을 찾기
file_list2 = glob.glob('drive')
# 디렉토리 안의 모든 파일 찾기
file_list3 = glob.glob('sample_data/*')
# 특정 확장자를 가진 파일만 찾기
file_list4 = glob.glob('sample_data/*.csv')
os
● 운영체제와 관련된 함수
→ 폴더 생성, 삭제, 파일 실행, 삭제 등
#현재 작업 디렉토리 가져오기
import os
cwd = os.getcwd()
print(cwd)
#디렉토리 생성
import os
os.mkdir('sample_data/new_directory')
#파일 이름 변경
import os
os.rename('sample_data/new_directory', 'sample_data/new_directory2')
#파일 삭제
import os
os.remove(file_adress)
import os
os.remove('sample_data/data.csv')
#파일 경로 가져오기
import os
files = os.listdir('/content')
print(files)
#경로 조작
import os
path = os.path.join('/content', 'sample_data', 'mnist_test.csv')
print(path)
split
● 경로 다룰 때 많이 사용 - 파일(경로) 다룰 때 사용
● 문자열을 여러개로 쪼개는데 유용 → 문자열로 되어 있는 파일 경로로 부터 파일 제목을 추출하는 등의 상황에서 사용
● rsplit() - 함수를 사용하여 오른쪽에서 몇 번째 문자까지 구분 할 것이냐
● 폴더 경로, 파일 제목을 명확하게 구분 가능
클래스
● 객체 지향 프로그래밍 (OOP)의 중요한 개념 중 하나
● 객체 지향 프로그래밍 : 현실 세계의 사물을 모델링핳여 프로그래밍하는 방법
→ 사람이 쓰기 편한 프로그래밍
→ 코드의 재사용성 과 유지 보수성을 향상시킬 수 있는
● 다양한 함수를 묶는 역할?
● 클래스 내에서 사용하는 함수 : 메서드
class ClassName:
def __init__(self, parameter1, parameter2):
self.attribute1 = parameter1
self.attribute2 = parameter2
# ↑ 초기값을 설정하는 메서드로 반드시 써야함
# 매개 변수 처음에 self를 무조건 적어야함
# 매개 변수를 self. attribute라는 클래스 내에서 사용하게 될 변수에 담아준 것
def method1(self, parameter1, parameter2):
# 메서드 내용 작성
pass
● 클래스와 객체의 관계
: 클래스는 객체를 만들기 위한 틀 또는 설계도
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# name / age를 self에 담기게 한 초기값을 설정하는 클래스
# 객체 생성
# 클래스 이름(Person)을 사용해서 어떠한 변수(person 1)에 담으면 클래스를 사용하는 객체
person1 = Person("Alice", 30)
person2 = Person("Bob", 25)
# 하나의 클래스 뼈대에 다양한 상황에 맞게 클래스를 객체로 사용할 수 있음
● 다형성
함수 : 동일한 이름 X
클래스 : 동일한 이름 O - 클래스 이름을 다르게 하면 됨
| 함수 | 클래스 | |
| 공통점 | 파이썬에서 코드를 조직화하고 재사용성을 높이는데 사용 | |
| 차이점 | - 데이터와 해당 데이터를 처리하는 메서드(함수)를 함께 묶어 놓은 것 = 캡슐화 → 조직화, 재사용성이 효과 |
|
● 메서드 : 클래스 내부에 정의된 함수
속성 : 클래스나 클래스의 인스턴스에 속한 변수
●데이터 구조화 / 데이터 타입 정의 / 데이터 전처리 모듈화 할 때 사용
불리언 인덱싱(Boolean Indexing)
● 조건에 따라 요소(값)를 선택하는 방법 중 하나
● Pandas에서 특정 조건에 따라 데이터를 선택하는 경우 : 불리언 인덱싱 사용

● 인덱싱 - 해당 인덱스 값만 가져옴
[]대괄호에 조건을 넣으면 조건에 해당하는 값을 가져옴

데코레이션
● 기존의 함수를 따로 수정하지 않고도 추가 기능을 넣고 싶을 때 사용

● 예시

: say hello라는 함수를 수정하지 않았음에도
: 데코레이션을 이용해 say hello 위, 아래 또 다른 함수를 추가 했음
● 딥러닝 라이브러리 - 텐서플로우의 @tf.runction이라는 데코레이션
: 텐서플로우 내에서 수행되는 연산을 빨리 수행할 수 있음
: 항상 좋은 성능을 내지는 않음
파이썬 에러 대처법
● 에러 확인하는 법

: TypeError라는 에러 종류를 알려줌 - 데이터 타입이 잘못되었음
: 'int' object iis not subscriptable
: '정수형 인덱싱 하려고 할 때 뜨는 에러' - 정수형은 인덱싱할 수 없는데 인덱싱하려고 할 때
● SyntaxError (구문 오류)
: 기본적 문법 - 괄호, 따옴표, 콜론 등을 갇추지 않았을 때
● IndentationError (들여쓰기 오류)
: 코드 블록의 들여쓰기가 잘못 되었을 때
● NameError (이름 오류)
: 정의되지 않은 변수나 함수를 사용하려고 할 때
● TypeError (타입 오류)
: 데이터 타입이 일치하지 않는 연산이나 함수 호출을 시도할 때
: 문자+문자 가능 / 숫자+숫자 가능 / 문자+숫자 불가
● IndexError (인덱스 오류)
: 리스트나 튜플에서 존재하지 않는 인덱스를 접근하려고 할 때
: ex) 리스트에 인덱스가 3번까지 밖에 없는데 4번에 접근하려고 할 때
● KeyError (키 오류)
: 딕셔너리에서 존재하지 않는 키를 사용하려고 할 때
● FileNotFoundError (파일을 찾을 수 없음 오류)
: 파일을 찾을 수 없을 때
'내일배움캠프(QC,QA_5기)' 카테고리의 다른 글
| [내일배움캠프_QA/QC 5기] 14일차 (0) | 2026.03.26 |
|---|---|
| [내일배움캠프_QA/QC 5기] 13일차 _ 데이터 전처리&시각화 1,2강 (0) | 2026.03.25 |
| [내일배움캠프_QA/QC 5기] 11일차 _ 파이썬 4강 (0) | 2026.03.23 |
| [내일배움캠프 _ QA/QC 5기] 9일차 _ 파이썬 3강 (0) | 2026.03.19 |
| [내일배움캠프_QA/QC 5기] 8일차 _ 파이썬 2강 (0) | 2026.03.18 |