
데이터 분석 14일차
name = "Alice" age = 25 print(f"이름: {name}, 나이: {age}") # 결과: 이름: Alice, 나이: 25
🎯 수식도 가능
price = 19.99 discount = 0.1 print(f"할인가: {price * (1 - discount):.2f}원") # 결과: 할인가: 17.99원
🎯 f-string에서 정렬 가능
name = "Bob" print(f"|{name:^10}|") # 가운데 정렬 (총 10칸) print(f"|{name:<10}|") # 왼쪽 정렬 print(f"|{name:>10}|") # 오른쪽 정렬 #결과: #| Bob | #|Bob | #| Bob|
📌 기본적인 구조
new_list = [표현식 for 변수 in 반복가능한객체 if 조건문]✔️ 표현식 → 리스트에 담을 값
✔️ for 변수 in 반복가능한객체 → for 루프를 돌면서 값을 가져옴
✔️ if 조건문 → (선택 사항) 특정 조건을 만족하는 경우만 리스트에 추가
- 일반 for문 사용
numbers = [1, 2, 3, 4, 5] squared = [] for num in numbers: squared.append(num ** 2) print(squared) #✔️출력: [1, 4, 9, 16, 25]
✅ 리스트 컴프리헨션 사용 (한 줄로 간결하게)
numbers = [1, 2, 3, 4, 5] squared = [num ** 2 for num in numbers] print(squared) #✔️출력: [1, 4, 9, 16, 25]
🚀 동일한 결과지만 코드가 훨씬 짧아짐!
🚀 주요 특징
lambda 매개변수: 표현식✔️ lambda 키워드로 시작
✔️ 매개변수를 받고 : 뒤에 연산 결과(표현식) 작성
✔️ return 없이 결과를 반환
- 일반 함수 사용 (def)
def add(x, y): return x + y print(add(3, 5)) # 8
- 람다 함수로 변환
add = lambda x, y: x + y print(add(3, 5)) # 8🚀 def 없이 한 줄로 간결하게 작성 가능!
- 람다 함수 사용 예제
📌 제곱값 구하기
square = lambda x: x ** 2 print(square(4)) # 16
📌 삼항 연산자 활용 (짝수/홀수 판별)
check_even = lambda x: "짝수" if x % 2 == 0 else "홀수" print(check_even(7)) # 홀수
📌 리스트 정렬 (sorted()에서 lambda 사용)
students = [("Alice", 25), ("Bob", 20), ("Charlie", 22)] # 나이 기준으로 정렬 sorted_students = sorted(students, key=lambda x: x[1]) print(sorted_students) # 출력: [('Bob', 20), ('Charlie', 22), ('Alice', 25)]🚀 key=lambda x: x[1] → 각 요소의 두 번째 값(나이)을 기준으로 정렬
📌 map()에서 lambda 사용
map()은 리스트의 모든 요소에 특정 함수를 적용할 때 사용numbers = [1, 2, 3, 4, 5] # 모든 요소를 제곱 squared = list(map(lambda x: x ** 2, numbers)) print(squared) # [1, 4, 9, 16, 25]🚀 map()을 사용하면 반복문 없이 한 줄로 변환 가능!
📌 filter()에서 lambda 사용
filter()는 특정 조건을 만족하는 요소만 필터링할 때 사용됩니다.numbers = [1, 2, 3, 4, 5, 6] # 짝수만 필터링 evens = list(filter(lambda x: x % 2 == 0, numbers)) print(evens) # [2, 4, 6]🚀 lambda와 filter()를 조합하면 리스트 필터링을 쉽게 구현 가능!
📌 reduce()에서 lambda 사용
reduce()는 리스트의 값을 누적 연산할 때 사용(먼저 functools.reduce를 임포트해야 함)from functools import reduce numbers = [1, 2, 3, 4, 5] # 리스트 요소 모두 곱하기 product = reduce(lambda x, y: x * y, numbers) print(product) # 120 (1*2*3*4*5)🚀 reduce()를 사용하면 리스트 요소를 차례대로 누적 연산 가능!
1) glob 기본 사용법
📌 glob.glob()
import glob
#
# 현재 경로의 모든 파일을 찾기
file_list1 = glob.glob('*')
import glob # # 현재 디렉토리의 모든 `.txt` 파일 찾기 txt_files = glob.glob("*.txt") print(txt_files)
# 단일 파일 패턴으로 파일을 찾기 file_list2 = glob.glob('drive')
# 디렉토리 안의 모든 파일 찾기 file_list3 = glob.glob('sample_data/*')
# 특정 확장자를 가진 파일만 찾기 file_list4 = glob.glob('sample_data/*.csv')
먼저 os 모듈을 사용하려면 import
import 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)
리스트 컴프리헨션와 람다를 잘 이해하고 활용하면 더 효율적인 코드를 짤수 있을 것 같지만, 아직 어렵다...