파이썬 Class와 Pandas 실습

Sally·2026년 3월 17일

Part 1. Python Class: 설계도와 실체

1. Dog 클래스 정의하기

class Dog:
    def __init__(self, name, breed):
        # 1. `name`(이름), `breed`(품종)을 속성으로 저장
        self.name = name
        self.breed = breed

    def bark(self):
        # 2.`bark()`를 호출하면 `f"{name}가 짖습니다: 멍멍!"` 을 출력
        print(f'{self.name}가 짖습니다: 멍멍!')

# 테스트
dog1 = Dog("바둑이", "진돗개")
dog1.bark()

dog2 = Dog("뽀삐", "푸들")
dog2.bark()

2. BankAccount 클래스 구현해보기

class BankAccount:
    """은행 계좌 클래스
    Attributes:
        owner (str): 계좌 소유자 이름
        balance (int): 계좌 잔액
        history (list): 거래 내역 리스트
    """
    def __init__(self, owner: str, balance: int = 0):
        # 1. 계좌소유자, 계좌잔액, 거래내역 리스트를 `owner`, `balance`, `history` attribute으로 저장해주세요
        self.owner = owner
        self.balance = balance
        self.history = []

    def deposit(self, amount: int):
        # 2. 입금 처리 (0 이하면 "입금 실패", 성공하면 "입금 완료" 출력 및 거래 내역 추가)
        if amount <= 0:
            print('출금 실패')
        else:
            self.balance += amount
            self.history.append(f"입금: {amount}원")
            print("입금 완료")
        
    def withdraw(self, amount: int):
        # 3. 출금 처리 (0 이하면 "출금 실패", 잔액 부족하면 "잔액 부족", 성공하면 "출금 완료" 출력 및 거래 내역 추가)
        if amount <= 0:
            print("출금 실패")
        elif amount > self.balance:
            print("잔액 부족")
        else:
            self.balance -= amount
            self.history.append(f"출금: {amount}원")
            print("출금 완료")

    def show_balance(self):
        # 4. "현재 잔액: {balance}원" 형식으로 출력
        print(f"현재 잔액: {self.balance}원")

    def get_transaction_history(self) -> list:
        # 5. 거래 내역이 없으면 "거래 내역이 없습니다." 출력, 있으면 모든 내역 출력 후 리스트 반환
        if not self.history:
            print("거래 내역이 없습니다.")
        else:
            for record in self.history:
                print(record)
        return self.history

    def __str__(self):
        # 6. "[계좌 소유자: {owner}, 잔액: {balance}원]" 형식으로 반환
        return f"[계좌 소유자: {self.owner}, 잔액: {self.balance}원]"

# 간단한 테스트
account = BankAccount("김철수", 10000)
account.deposit(5000)
account.withdraw(3000)
account.show_balance()
print(account)

Part2. Pandas 기초 (DataFrame 다루기)

0. 공통 실습 환경 설치

!pip install -q \
    "pandas>=2.0.0" \
    "seaborn>=0.13.2"
import seaborn as sns
import pandas as pd

1. Pandas DataFrame이란?

  1. DataFrame이란?
    DataFrame은 Pandas의 핵심 자료구조로, 엑셀의 시트나 SQL 테이블처럼 행(row)과 열(column)로 구성된 2차원 테이블이다.

Data 확인 함수
1. 데이터 확인 함수
데이터를 불러온 직후, 이 표가 어떻게 생겼는지 파악할 때 사용.

  • df.head(n): 처음 n개 행 보기 (기본값 5)
  • df.info(): 데이터 타입, 결측치, 메모리 정보 확인
  • df.describe(): 수치형 컬럼의 통계 요약(평균, 표준편차, 최소/최대값 등)
  • df.shape: (행 개수, 열 개수) 튜플로 반환
  • df.columns: 컬럼 이름 리스트

Data 선택 방법

  • 컬럼 선택: df['컬럼명'] 또는 df[['컬럼1', '컬럼2']]
  • loc (라벨 기반): df.loc[행_라벨, 열_라벨]
  • iloc (위치 기반): df.iloc[행_번호, 열_번호]

조건 필터링

# 팁이 5달러 이상인 행만 선택
df[df['tip'] >= 5]

# 성별이 Male인 행만 선택
df[df['sex'] == 'Male']

# 여러 조건 조합 (AND: &, OR: |)
df[(df['tip'] >= 5) & (df['sex'] == 'Male')]

기초 집계 함수

  • mean(): 평균
  • sum(): 합계
  • count(): 개수
  • min() / max(): 최소/최대값
  • std(): 표준편차

0개의 댓글