퍼포먼스 마케터 부트캠프 3주 3일차 (참여 10일차)

MIN BAEK·2025년 5월 28일
0

1. 오늘 학습 키워드

패키지(라이브러리),리스트 컴프리헨션, 포맷팅, 람다 함수

2. 학습한 내용

📂 01 파일 입출력 및 드라이브 마운트 정리

구분설명주요 함수/방법예시 코드비고
CSV 파일 불러오기쉼표(,)로 구분된 CSV 파일을 데이터프레임으로 불러옴pd.read_csv()df = pd.read_csv('file.csv')
Excel 파일 불러오기엑셀 파일을 데이터프레임으로 불러옴pd.read_excel()df = pd.read_excel('file.xlsx')
JSON 파일 불러오기JSON 형식 파일을 데이터프레임으로 불러옴pd.read_json()df = pd.read_json('file.json')
텍스트 파일 불러오기텍스트 파일(탭, 공백 등 다양한 구분자 가능) 불러오기pd.read_csv() + delimiter 옵션df = pd.read_csv('file.txt', delimiter='\t')
CSV 파일 저장하기데이터프레임을 CSV 파일로 저장df.to_csv()df.to_csv('new_file.csv', index=False)인덱스 제외 가능
Excel 파일 저장하기데이터프레임을 엑셀 파일로 저장df.to_excel()df.to_excel('new_file.xlsx', index=False)인덱스 제외 가능
JSON 파일 생성 및 저장딕셔너리 데이터를 JSON 형식으로 파일에 저장json.dump() + with open() 표준 라이브러리 함수python import json data = {'Name':['John'], 'Age':[30]} with open('data.json', 'w') as f: json.dump(data, f, indent=4)with open은 파일 자동닫기 및 안전한 파일 관리
텍스트 파일 생성 및 저장딕셔너리 데이터를 텍스트 형식으로 파일에 저장 (key: value 형식)with open() + write()파일 객체 메서드python data = {'Name':['John'], 'Age':[30]} with open('data.txt', 'w') as f: for k,v in data.items(): f.write(str(k) + " : " + str(v) + '\n')with open은 파일 자동닫기 및 안전한 파일 관리
구글 드라이브 마운트Colab에서 구글 드라이브를 연결하여 파일 접근from google.colab import drive + drive.mount()python from google.colab import drive drive.mount('/content/drive')구글 코랩에서 파일을 직접 접근 가능

📦 02 패키지(라이브러리) 사용하기

🤔📍잠깐 여기서! 패키지를 짚고 가자📍🤔

  • 모듈 = 기능이 담긴 파이썬 파일 하나
  • 패키지 = 여러 모듈을 담은 폴더 구조
  • 라이브러리 = 다양한 기능을 가진 도구 모음집 (패키지 or 패키지+모듈의 모음)

✅ 파이썬에서 자주 사용하는 패키지 종류 및 주요 기능

데이터 처리 및 분석

패키지명설명주요 기능
pandas데이터프레임 처리CSV/Excel 읽기, 그룹화, 결측치 처리 등
numpy수치 연산 처리배열, 벡터 연산, 통계
openpyxl엑셀(.xlsx) 다루기셀 읽기/쓰기, 시트 생성 등
csvCSV 파일 다루기 (내장)파일 입출력, 행/열 분리
scikit-learn머신러닝 라이브러리분류, 회귀, 군집화, 데이터 전처리 등
statsmodels통계모델링 및 검정회귀분석, 시계열 분석, 통계 검정
scipy과학/공학용 수치 계산최적화, 적분, 선형대수, 신호처리

시각화

패키지명설명주요 기능
matplotlib기본 시각화선그래프, 막대그래프, 산점도 등
seaborn고급 통계 시각화상관관계 히트맵, 카운트플롯 등
plotly대화형 그래프줌, 클릭 가능한 그래프

딥러닝

패키지명설명주요 기능
tensorflow딥러닝 프레임워크신경망 구축, 학습, 배포
pytorch딥러닝 프레임워크동적 계산 그래프 기반 신경망 구축

📝 03 포맷팅 사용하기

항목설명예시
f-stringf"{}"로 포맷팅print(f"이름: {name}, 나이: {age}세")
format() 함수{}와 .format() 사용print("이름: {}, 나이: {}세".format(name, age))
%.포맷팅옛 방식, %s, %d 등 사용print("이름: %s, 나이: %d세" % (name, age))

🧠 04 리스트 컴프리헨션

  • 리스트를 간결하게 생성하는 방법 중 하나
  • 보통 반복문과 조건문을 사용하여 리스트를 생성할 때 사용
항목설명예시
기본 형태[표현식 for 변수 in 반복가능한객체(iterable)][x**2 for x in range(5)]→ [0, 1, 4, 9, 16]
조건 포함[표현식 for 변수 in 객체 if 조건][x for x in range(10) if x % 2 == 0]→ [0, 2, 4, 6, 8]
이중 for문[표현식 for i in A for j in B][(i, j) for i in range(2) for j in range(2)]→ [(0,0),(0,1),(1,0),(1,1)]

✅일반적인 for 문 방식

numbers = [1, 2, 3, 4, 5]
squares = []
for num in numbers:
squares.append(num ** 2)
print(squares)
#[1, 4, 9, 16, 25]

✅리스트 컴프리헨션으로 변환

numbers = [1, 2, 3, 4, 5]
squares = [num ** 2 for num in numbers]
print(squares)
#[1, 4, 9, 16, 25]

⚡ 05 lambda 함수

  • 익명 함수로, 이름 없이 정의되는 간단한 함수
항목설명예시
기본 형태lambda 매개변수: 표현식lambda x: x + 1
사용 예map(), filter(),sorted(),reduce() 등과 자주 함께 사용 *이름 없이 ‘한줄짜리 함수’를 만들 때 딱 좋아서, 이런 함수들의 인자로 바로 넘기기 편하기 때문list(map(lambda x: x*2, [1,2,3]))→ [2,4,6]

🧹 06 glob 모듈 사용하기

  • 파일 시스템에서 파일을 찾을 때 사용되는 유용한 도구
  • 주로 파일 이름이나 확장자에 따라 파일을 필터링하는데 사용
항목설명예시
파일 목록 가져오기특정 경로의 파일 이름들을 리스트로 반환import glob glob.glob("*.txt")→ ['a.txt', 'b.txt']
경로 + 확장자하위 폴더 포함 검색 가능glob.glob("data/*/.csv", recursive=True)

🗂️ 07 os 모듈 사용하기

  • 운영체제와 상호작용하기 위한 다양한 함수 제공
항목설명예시
파일 및 디렉토리 관리디렉토리 가져오기os.getcwd()import os cwd = os.getcwd() print(cwd)
디렉토리 생성os.mkdir()os.mkdir("new_folder")
파일 이름 변경os.rename()os.rename('sample_data/new_directory', 'sample_data/new_directory2')
파일 삭제os.remove()os.remove('sample_data/data.csv')
경로 관리파일 목록(경로) 가져오기os.listdir()files = os.listdir('/content')
경로 조작os.path.join()os.path.join("data", "file.txt")

✂️ 08 split 사용하기

  • 문자열 여러개로 쪼개는데 유용
  • 문자열로 되어 있는 파일 경로로부터 파일 제목을 추출하는 등의 상황에서 유용하게 사용 가능
항목설명예시
기본 사용문자열을 특정 구분자로 나눔"a,b,c".split(",") → ['a', 'b', 'c']
공백 기준 분리인자 없이 사용하면 공백 기준"hello world".split() → ['hello', 'world']
최대 분리 횟수split(구분자, 최대횟수)"a-b-c-d".split("-", 2) → ['a', 'b', 'c-d']

3. 학습하며 겪었던 문제점

파이썬 개인 과제 수행 중...

반복문을 작성하다보면
첫번째 의문... 어떤 건 문자열 =none 을 주고 어떤건 "" 빈 문자열을 준다. 이 이유는..?

1) converted_code = "" (개인 과제 3-2 참고)
이 변수는 문자열을 이어붙여서 새 문자열을 만드는 용도
그래서 처음부터 빈 문자열("")이어야 함
만약 None으로 초기화하면 문자열 덧셈(+=) 할 때 에러 발생

converted_code = "" # 빈 문자열로 시작
converted_code += "3" # 정상 작동, "3"

2) top_product = None (개인 과제 3-1 참고)
이 변수는 아직 값이 정해지지 않았다는 의미로 '없음'을 표시하는 용도
top_product에 문자열을 더하는 게 아니라, 딕셔너리에서 가장 많이 팔린 제품 이름(문자열) 을 대입하는 용도
즉, 나중에 top_product = "무선 이어폰" 같은 식으로 값을 교체하는 것이지, 문자열 덧셈을 하는 게 X
그래서 top_product = None을 ""로 바꿔도 큰 문제는 없지만, 보통은 아직 값이 없다는 의미로 None을 쓰는 게 더 명확

두번째 의문... 어떤건 밖에 변수를 작성해주고(위의 ⭐️ 부분 참고) 어떤건 변수를 안만들어준다... 왤까...?

(과제 3-1) top_product = None ⭐️
max_sales = 0 ⭐️
for product, sales in sales_data.items():
if sales > max_sales:
max_sales = sales
top_product = product

s = "abc" ---------------- 문자열
result = "" ---------------- 내가 반복문 밖에서 만든 만든 빈 문자열 (초기화)2️⃣
for x in s: ---------------- 반복문이 x에 하나씩 문자 할당 1️⃣
print(x) ---------------- x 출력 (자동 할당)
result += x ---------------- 내가 result에 직접 더함2️⃣
print(result) ---------------- 내가 만든 result 출력

반복문의 1️⃣for x in ...에서 x는 반복 중에 자동으로 값이 할당되는 변수라서 따로 초기화 필요❌
그러나, 2️⃣값을 누적하거나 저장하려는 변수는 반드시 초기화 필요⭕️

4. 오늘의 인사이트

파이썬 과제를 하면서도... 이미 적어주신 틀 없이 백지 상태에서 작성해보라고 하면 쓸수 있을까 싶었다... 이제 고작 3주 시작했는데 이렇게 어렵다니요 ㅠㅠㅠ
그래도 걱정보단 주어진 것에 최선을 다하자. 하다보면 뭐라도 나아지겠지..☀️

5. 내일 학습 할 일 정리

파이썬 강의 복습, 조건문/반복문 확실히 이해될 때까지!

profile
안녕하세요 백민입니다:)

2개의 댓글

comment-user-thumbnail
2025년 5월 28일

저와 다르게 문제점 구체화를 잘하신 듯 합니다! 고생하셨어요

답글 달기
comment-user-thumbnail
2025년 5월 28일

헉 오늘도 수고 많으셨어요!! 배운 내용들을 깔끔하게 정리하셨네요! 과제 3-1에서 top_product는 문자열이 들어가야 해서 None을 쓰고, max_sales는 숫자가 들어가야 하는데 값을 비교해줘야 하기 때문에 0을 쓰는 것 같아요! 내일도 파이팅 입니다!!

답글 달기