학생별 출석률을 계산하고 평균 출석률 및 결석자를 파악한다.
collections.Counter
로 출석 횟수를 집계한다.statistics.mean
으로 평균 출석률을 계산한다.set
과 딕셔너리 내포를 통해 결석자를 도출한다.names = []
for name in attendance.values():
names.extend(name)
count = Counter(names)
for name in count:
print(f"{name}: {round(count[name]/total_days*100, 1)}% 출석률")
rates = [v/total_days*100 for v in count.values()]
print("평균 출석률:", round(statistics.mean(rates), 1), "%")
Counter
와 리스트 평탄화를 활용해 빠르게 통계를 계산할 수 있다.set
을 사용해 전체 학생 명단을 확보하고 결석 횟수를 쉽게 구할 수 있다.사용자 입력을 받아 장바구니를 구성하고 총액을 계산한다.
defaultdict(int)
로 수량을 누적한다.dict
에 저장한다.cart[name] += 1
prices[name] = price
for name in cart:
subtotal = cart[name] * prices[name]
total += subtotal
학생 클래스를 정의한 후 평균 점수를 계산하고 우수자를 필터링하며 순위를 정리한다.
@property
를 활용한다.filter
와 lambda
로 조건 필터링을 수행한다.sorted
로 평균 점수를 기준으로 정렬한다.class Student:
def __init__(self, name, scores):
self.name = name
self.scores = scores
@property
def average(self):
return sum(self.scores) / len(self.scores)
sorted_students = sorted(students, key=lambda s: s.average, reverse=True)
@property
를 활용하면 함수처럼 보이지만 속성처럼 사용할 수 있어 코드 표현이 간결해진다.성별(Gender) 기준으로 Review Rating
의 평균과 중앙값을 계산한다.
groupby
+ agg()
로 다중 집계를 수행한다.pivot_table
을 사용해 행/열 기준으로 요약한다.reset_index()
로 멀티 인덱스를 컬럼화한다.def get_agg(df):
agg_df = df.groupby('Gender')['Review Rating'].agg(['mean', 'median'])
return agg_df.round(2)
.agg()
안에 리스트로 함수를 전달한다.pivot_table
은 보고서나 시각화용 테이블 작성에 유용하다.나이(Age)와 과거 구매 수(Previous Purchases)가 구매 금액에 미치는 영향을 분석한다.
LinearRegression
모델을 학습한다.r2_score
로 결정계수(R²)를 계산한다.def get_multi_reg(df):
X = df[['Age', 'Previous Purchases']]
y = df['Purchase Amount (USD)']
model = LinearRegression()
model.fit(X, y)
y_pred = model.predict(X)
r2 = r2_score(y, y_pred)
return round(r2, 4)
r2_score()
외에도 직접 수식을 사용해 결정계수를 계산할 수 있다.실전 예제를 통해 Python 내장 모듈과 데이터 분석 기초 기능을 익혔다.
groupby
, pivot_table
, @property
, Counter
, defaultdict
등 실무에서 자주 사용하는 기능을 반복적으로 학습하여 익숙해졌다.
단순 통계부터 회귀 분석까지 학습하면서 분석 흐름에 대한 감각을 익혔다.
코드카타 심화 프로젝트 올인