안녕하세요, 데이터 과학자를 꿈꾸는 여러분! 지난 시간에는 파이썬의 기본기를 탄탄하게 다지는 시간을 가졌습니다. 오늘은 파이썬의 강력한 날개, 라이브러리 활용의 첫 번째 시간으로 데이터 분석의 핵심 도구인 Pandas 라이브러리에 대해 쉽고 재미있게 알아보려고 합니다. 마치 숙련된 요리사가 다양한 재료를 능숙하게 다루듯, Pandas를 사용하면 복잡한 데이터도 원하는 대로 분석하고 가공할 수 있습니다. 자, 데이터 분석의 세계로 함께 떠나볼까요? 🚀
🐼 라이브러리 활용 (1): 데이터 분석 (Pandas)
Pandas는 파이썬에서 데이터를 효율적으로 처리하고 분석하기 위해 개발된 라이브러리입니다. Pandas는 강력한 데이터 구조와 다양한 데이터 분석 기능을 제공하여, 우리가 엑셀과 같은 스프레드시트 프로그램을 사용하는 것보다 훨씬 더 유연하고 효율적으로 데이터를 다룰 수 있도록 도와줍니다.
💡 Pandas 소개
Pandas는 다음과 같은 특징을 가지고 있어 데이터 분석 작업에 필수적인 도구로 자리매김했습니다.
- 강력한 데이터 구조: Series (1차원 배열)와 DataFrame (2차원 테이블)이라는 효율적인 데이터 구조를 제공합니다.
- 다양한 데이터 입출력: CSV, Excel, SQL 데이터베이스 등 다양한 형식의 데이터를 읽고 쓰는 기능을 지원합니다.
- 데이터 정제 및 전처리: 누락된 데이터 처리, 데이터 필터링, 정렬, 그룹화, 병합 등 다양한 데이터 전처리 기능을 제공합니다.
- 데이터 탐색 및 분석: 통계 분석, 데이터 시각화 등 데이터의 특징을 파악하고 의미를 도출하는 데 유용한 기능을 제공합니다.
🧱 Series와 DataFrame: 데이터 분석의 기본 재료
Pandas의 핵심 데이터 구조는 Series와 DataFrame입니다.
- Series: 1차원 배열 형태의 데이터 구조로, 각 데이터에는 고유한 **인덱스(Index)**가 연결되어 있습니다. 마치 엑셀 시트의 하나의 열과 비슷하다고 생각할 수 있습니다.출력 결과:
A 10
B 20
C 30
D 40
E 50
dtype: int64
import pandas as pd
# Series 생성
data = [10, 20, 30, 40, 50]
index = ['A', 'B', 'C', 'D', 'E']
series = pd.Series(data, index=index)
print(series)
- DataFrame: 2차원 테이블 형태의 데이터 구조로, 여러 개의 Series가 모여 이루어져 있습니다. 각 열은 서로 다른 데이터 타입을 가질 수 있으며, 행과 열 모두에 인덱스를 가집니다. 엑셀 시트 전체와 매우 유사한 형태입니다.출력 결과:
이름 나이 직업
0 Alice 25 데이터 분석가
1 Bob 30 개발자
2 Charlie 28 마케터
import pandas as pd
# DataFrame 생성
data = {'이름': ['Alice', 'Bob', 'Charlie'],
'나이': [25, 30, 28],
'직업': ['데이터 분석가', '개발자', '마케터']}
df = pd.DataFrame(data)
print(df)
💾 데이터 불러오기 및 저장: 데이터와 연결하기
Pandas는 다양한 형식의 데이터를 쉽게 불러오고 저장할 수 있는 기능을 제공합니다.
- 데이터 불러오기:
- CSV 파일: pd.read_csv('파일경로.csv')
- Excel 파일: pd.read_excel('파일경로.xlsx')
- 텍스트 파일: pd.read_table('파일경로.txt')
- 이 외에도 다양한 형식의 데이터를 불러올 수 있습니다.
- 데이터 저장:
- CSV 파일: df.to_csv('저장경로.csv', index=False) (index=False는 인덱스 저장을 제외)
- Excel 파일: df.to_excel('저장경로.xlsx', index=False)
- 이 외에도 다양한 형식으로 데이터를 저장할 수 있습니다.
예시 코드:
# CSV 파일 불러오기
data = pd.read_csv('sample.csv')
print("--- CSV 파일 내용 ---")
print(data.head()) # 처음 5행 출력
# DataFrame 저장하기 (CSV 파일로)
new_data = {'이름': ['David', 'Eve'], '나이': [35, 22], '직업': ['의사', '학생']}
new_df = pd.DataFrame(new_data)
new_df.to_csv('new_sample.csv', index=False)
print("\n--- 새로운 데이터가 new_sample.csv로 저장되었습니다. ---")
🔍 데이터 탐색 및 전처리: 데이터와 친해지기
Pandas는 데이터를 이해하고 분석하기 전에 필요한 다양한 탐색 및 전처리 기능을 제공합니다.
- 데이터 탐색:
- df.head(n): 처음 n행 출력 (기본값: 5)
- df.tail(n): 마지막 n행 출력 (기본값: 5)
- df.info(): DataFrame의 요약 정보 (행 수, 열 수, 데이터 타입 등)
- df.describe(): 수치형 데이터의 기술 통계 정보 (평균, 표준편차, 최소값, 최대값 등)
- df.shape: DataFrame의 형태 (행 수, 열 수)
- df.columns: 열 이름 확인
- df.index: 인덱스 확인
- 데이터 전처리:
- 결측치 처리:
- df.isnull(): 결측치 여부 확인 (True/False 반환)
- df.fillna(value): 결측치를 특정 값으로 채우기
- df.dropna(): 결측치가 있는 행 또는 열 제거
- 데이터 필터링:
- df[df['조건']]: 특정 조건을 만족하는 데이터만 추출
- 데이터 정렬:
- df.sort_values(by='열 이름'): 특정 열을 기준으로 데이터 정렬
- 데이터 그룹화:
- df.groupby('열 이름').mean(): 특정 열을 기준으로 그룹화하여 평균 계산
- 결측치 처리:
예시 코드:
# sample.csv 파일이 다음과 같은 내용을 가지고 있다고 가정합니다.
# 이름,나이,직업
# Alice,25,데이터 분석가
# Bob,30,개발자
# Charlie,28,마케터
# David,,의사
# Eve,22,학생
data = pd.read_csv('sample.csv')
print("--- 데이터 정보 ---")
print(data.info())
print("\n--- 기술 통계 정보 ---")
print(data.describe())
print("\n--- 결측치 확인 ---")
print(data.isnull())
print("\n--- 결측치 '없음'으로 채우기 ---")
filled_data = data.fillna('없음')
print(filled_data)
print("\n--- 나이가 25세 이상인 데이터 필터링 ---")
filtered_data = data[data['나이'] >= 25]
print(filtered_data)
🎉 마무리하며
오늘은 파이썬 데이터 분석의 핵심 라이브러리인 Pandas의 기본 개념과 활용 방법에 대해 알아보았습니다. Pandas의 강력한 데이터 구조와 다양한 기능을 통해 우리는 데이터를 더욱 효율적으로 다루고 분석할 수 있게 되었습니다. 앞으로 데이터 분석 프로젝트를 진행하면서 Pandas는 여러분에게 든든한 조력자가 되어줄 것입니다. 다음 시간에는 Pandas와 함께 데이터 시각화의 세계로 떠나볼 예정이니 많은 기대 부탁드립니다! 🎨
'프로그래밍 > Python' 카테고리의 다른 글
[Python]나만의 텍스트 기반 게임 만들기 🎮 (사용자 입력 & 게임 로직) (7) | 2025.04.01 |
---|---|
[Python]파이썬으로 나만의 계산기 만들기: GUI 또는 CLI 기반 사칙연산 구현하기! ➕➖✖️➗ (11) | 2025.04.01 |
[Python]파이썬 마법사로 레벨 업! 데코레이터, 제너레이터, 이터레이터 완전 정복 🧙♂️ (3) | 2025.03.31 |
[Python]파이썬 에러 잡기와 파일 요리하기: 예외 처리 & 파일 입출력 완전 정복 🍳 (2) | 2025.03.31 |
[Python]객체 지향 프로그래밍 (OOP) (3): 다형성(Polymorphism)🧙♀️ (7) | 2025.03.28 |