AI/IT
Part 2

Pandas로 데이터 다루기 기초

·
2분 소요

Pandas란?

Pandas는 Python에서 데이터를 분석하고 처리하기 위한 핵심 라이브러리입니다. 엑셀의 시트와 유사한 DataFrame 구조를 제공하여, 회계 데이터를 다루는 데 매우 적합합니다. 엑셀로 수십 분 걸리던 작업을 몇 줄의 코드로 처리할 수 있습니다.

Pandas 설치 확인

이전 챕터에서 이미 설치하였지만, 확인 차원에서 다시 점검합니다.

import pandas as pd
print(pd.__version__)

만약 설치되어 있지 않다면 다음 명령어로 설치합니다.

pip install pandas openpyxl

openpyxl은 엑셀 파일을 읽고 쓰기 위해 함께 설치합니다.

DataFrame 생성하기

DataFrame은 행과 열로 구성된 2차원 테이블 구조입니다. 딕셔너리를 활용하여 직접 생성할 수 있습니다.

import pandas as pd

# 전표 데이터 생성
data = {
    "전표번호": ["V001", "V002", "V003", "V004", "V005"],
    "일자": ["2025-01-05", "2025-01-05", "2025-01-10", "2025-01-15", "2025-01-15"],
    "계정과목": ["매출", "매입", "급여", "임차료", "매출"],
    "차변": [0, 5000000, 8000000, 3000000, 0],
    "대변": [10000000, 0, 0, 0, 7000000],
}

df = pd.DataFrame(data)
print(df)

실행하면 엑셀처럼 깔끔한 테이블 형태로 데이터가 출력됩니다.

CSV 및 엑셀 파일 읽기

실무에서는 파일에서 데이터를 읽어오는 경우가 대부분입니다.

# CSV 파일 읽기
df_csv = pd.read_csv("거래내역.csv", encoding="utf-8-sig")

# 엑셀 파일 읽기
df_excel = pd.read_excel("시산표.xlsx", sheet_name="1월")

# 여러 시트 한번에 읽기
all_sheets = pd.read_excel("시산표.xlsx", sheet_name=None)
for sheet_name, sheet_df in all_sheets.items():
    print(f"--- {sheet_name} ---")
    print(sheet_df.head())

encoding="utf-8-sig"는 한글 데이터가 포함된 CSV 파일을 정상적으로 읽기 위한 설정입니다.

데이터 필터링

특정 조건에 맞는 데이터만 추출하는 것은 회계 업무에서 빈번하게 수행하는 작업입니다.

# 매출 전표만 필터링
sales = df[df["계정과목"] == "매출"]
print(sales)

# 차변 금액이 500만 원 이상인 전표
large_debit = df[df["차변"] >= 5000000]
print(large_debit)

# 여러 조건 결합 (1월 10일 이후 AND 차변 발생)
filtered = df[(df["일자"] >= "2025-01-10") & (df["차변"] > 0)]
print(filtered)

정렬과 그룹화

데이터를 정렬하거나 그룹별로 집계하는 방법입니다.

# 차변 금액 기준 내림차순 정렬
sorted_df = df.sort_values("차변", ascending=False)
print(sorted_df)

# 계정과목별 합계
summary = df.groupby("계정과목")"차변",-"대변"" class="internal-link">"차변", "대변".sum()
print(summary)

# 계정과목별 전표 건수
count = df.groupby("계정과목").size().reset_index(name="건수")
print(count)

groupby는 엑셀의 피벗 테이블과 유사한 기능을 제공하며, 월별 매출 집계, 계정과목별 잔액 산출 등에 활용할 수 있습니다.

실무 예제: 월별 매출 집계 보고서

지금까지 배운 내용을 종합하여 실무에서 바로 사용할 수 있는 예제를 작성합니다.

import pandas as pd

# 거래 데이터 읽기
df = pd.read_excel("2025_거래내역.xlsx")

# 일자를 datetime으로 변환
df["일자"] = pd.to_datetime(df["일자"])

# 월 컬럼 추가
df["월"] = df["일자"].dt.month

# 매출 데이터만 추출
revenue = df[df["계정과목"] == "매출"]

# 월별 매출 합계
monthly_revenue = revenue.groupby("월")["대변"].sum().reset_index()
monthly_revenue.columns = ["월", "매출액"]

# 결과를 엑셀로 저장
monthly_revenue.to_excel("월별_매출집계.xlsx", index=False)
print("월별 매출 집계 보고서가 생성되었습니다.")
print(monthly_revenue)

이 스크립트 하나로 매월 수작업으로 처리하던 매출 집계 작업을 몇 초 만에 완료할 수 있습니다. 다음 챕터에서는 여러 개의 엑셀 파일을 자동으로 취합하는 방법을 다룹니다.

Knowledge Map

Loading Graph...
직접 작성
시리즈
자료
참고자료