본문 바로가기
프로그래밍/Python

[Python]파이썬으로 데이터 요리하기: Pandas 라이브러리 정복! 📊

by 다다면체 2025. 3. 31.
728x90
반응형

안녕하세요, 데이터 과학자를 꿈꾸는 여러분! 지난 시간에는 파이썬의 기본기를 탄탄하게 다지는 시간을 가졌습니다. 오늘은 파이썬의 강력한 날개, 라이브러리 활용의 첫 번째 시간으로 데이터 분석의 핵심 도구인 Pandas 라이브러리에 대해 쉽고 재미있게 알아보려고 합니다. 마치 숙련된 요리사가 다양한 재료를 능숙하게 다루듯, Pandas를 사용하면 복잡한 데이터도 원하는 대로 분석하고 가공할 수 있습니다. 자, 데이터 분석의 세계로 함께 떠나볼까요? 🚀

반응형

🐼 라이브러리 활용 (1): 데이터 분석 (Pandas)

Pandas는 파이썬에서 데이터를 효율적으로 처리하고 분석하기 위해 개발된 라이브러리입니다. Pandas는 강력한 데이터 구조와 다양한 데이터 분석 기능을 제공하여, 우리가 엑셀과 같은 스프레드시트 프로그램을 사용하는 것보다 훨씬 더 유연하고 효율적으로 데이터를 다룰 수 있도록 도와줍니다.

💡 Pandas 소개

Pandas는 다음과 같은 특징을 가지고 있어 데이터 분석 작업에 필수적인 도구로 자리매김했습니다.

  • 강력한 데이터 구조: Series (1차원 배열)와 DataFrame (2차원 테이블)이라는 효율적인 데이터 구조를 제공합니다.
  • 다양한 데이터 입출력: CSV, Excel, SQL 데이터베이스 등 다양한 형식의 데이터를 읽고 쓰는 기능을 지원합니다.
  • 데이터 정제 및 전처리: 누락된 데이터 처리, 데이터 필터링, 정렬, 그룹화, 병합 등 다양한 데이터 전처리 기능을 제공합니다.
  • 데이터 탐색 및 분석: 통계 분석, 데이터 시각화 등 데이터의 특징을 파악하고 의미를 도출하는 데 유용한 기능을 제공합니다.

🧱 Series와 DataFrame: 데이터 분석의 기본 재료

Pandas의 핵심 데이터 구조는 SeriesDataFrame입니다.

  • 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와 함께 데이터 시각화의 세계로 떠나볼 예정이니 많은 기대 부탁드립니다! 🎨

728x90
반응형