Why Not SW CAMP 5기/수업 기록

[2월 1주차-2/5(1)]Pandas 기초: 데이터 분석을 위한 필수 라이브러리

rubii 2025. 2. 5. 17:34

데이터 분석을 시작할 때 가장 많이 사용하는 라이브러리 중 하나가 Pandas입니다. Pandas는 빠르고 효율적인 데이터 처리를 도와주는 Python 패키지로, 다양한 형태의 데이터를 쉽게 다룰 수 있도록 최적화되어 있습니다.

이번 글에서는 Pandas의 기본 개념과 활용법을 정리해보겠습니다.


📌 Pandas란?

Pandas는 데이터 분석을 위한 파이썬 라이브러리로, 특히 표 형태(테이블 구조)의 데이터를 다루는 데 최적화되어 있습니다.

✅ Pandas의 주요 특징

  1. 빠르고 효율적인 데이터 처리
  2. 다양한 데이터 형태 지원
    • 시계열 데이터, 레이블이 있는 데이터, 관측 데이터 등
  3. Series(1차원)와 DataFrame(2차원) 제공
  4. 결측값(null) 처리 가능
  5. 데이터 추가, 삭제, 정렬, 조작 용이

✅ Pandas로 할 수 있는 일

  • 리스트, 딕셔너리, Numpy 배열 등을 DataFrame으로 변환
  • CSV, Excel, JSON 파일 등 외부 데이터 불러오기
  • 웹 사이트에서 원격 데이터 가져오기
  • 데이터 조회 및 검사 (평균, 상관관계, 개수 등)
  • 필터링, 정렬, 그룹화
  • 데이터 정제 및 전처리

🔹 Pandas의 기본 자료구조

Pandas는 크게 SeriesDataFrame이라는 두 가지 데이터 구조를 제공합니다.

1️⃣ Series (1차원 데이터)

Series는 1차원 배열 구조이며, 리스트와 비슷하지만 인덱스를 직접 설정할 수 있습니다.

import pandas as pd  

# Series 생성
idx = ['2025-02-19', '2025-02-18', '2025-02-17']
data = [92600, 92400, 92100]

sample = pd.Series(data, index=idx)
print(sample)

# 특정 인덱스 데이터 출력
print(sample['2025-02-19'])  # 92600
2025-02-19    92600
2025-02-18    92400
2025-02-17    92100
dtype: int64

Series는 파이썬의 딕셔너리와 유사한 구조를 가지며, 인덱스를 활용한 데이터 조작이 가능합니다.


2️⃣ DataFrame (2차원 데이터)

DataFrame은 행렬(2차원) 형태의 데이터 구조로, 딕셔너리를 기반으로 쉽게 만들 수 있습니다.

# 딕셔너리를 이용한 DataFrame 생성
data = {'col1': [1, 2, 3], 'col2': [10, 20, 30], 'col3': [100, 200, 300]}
df = pd.DataFrame(data)

print(df)
   col1  col2  col3
0     1    10   100
1     2    20   200
2     3    30   300

특정 컬럼 선택

print(df['col1'])  # Series 형태로 출력
print(df[['col1', 'col2']])  # DataFrame 형태로 출력

🔹 데이터 조회 및 조작

1️⃣ 데이터 확인

df.head()  # 상위 5개 행 출력
df.tail()  # 하위 5개 행 출력
df.shape   # 데이터 크기(행, 열) 확인
df.info()  # 컬럼 정보 확인
df.describe()  # 기초 통계 정보 확인

2️⃣ 정렬 및 필터링

df.sort_values(by='col2', ascending=False)  # 특정 컬럼 기준 정렬
df[df['col1'] > 1]  # 특정 조건을 만족하는 데이터 필터링

3️⃣ 데이터 추가 및 삭제

df['new_col'] = df['col1'] * 2  # 새로운 컬럼 추가
df.drop(columns=['new_col'], inplace=True)  # 특정 컬럼 삭제

🔹 Pandas의 고급 기능

1️⃣ 여러 DataFrame 연결 (concat)

df1 = pd.DataFrame({'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
df2 = pd.DataFrame({'A': ['A2', 'A3'], 'B': ['B2', 'B3']})

result = pd.concat([df1, df2])
print(result)
    A   B
0  A0  B0
1  A1  B1
0  A2  B2
1  A3  B3

2️⃣ 데이터 병합 (merge)

df1 = pd.DataFrame({'key': ['K0', 'K1'], 'A': ['A0', 'A1']})
df2 = pd.DataFrame({'key': ['K0', 'K2'], 'B': ['B0', 'B2']})

merged = pd.merge(df1, df2, on='key', how='inner')
print(merged)
  key   A   B
0  K0  A0  B0

🔹 외부 데이터 불러오기

1️⃣ CSV 파일 읽기

df = pd.read_csv('data.csv', encoding='utf-8')
print(df.head())

2️⃣ 데이터 저장

df.to_csv('output.csv', encoding='utf-8', index=False)

🔹 데이터 시각화

Pandas는 Matplotlib과 함께 사용하여 데이터를 시각적으로 표현할 수도 있습니다.

import matplotlib.pyplot as plt  

df['col1'].plot(kind='bar')  
plt.show()

✅ 마무리

Pandas는 데이터 분석에서 꼭 필요한 라이브러리로, 다양한 기능을 제공합니다. 이번 글에서는 기초적인 개념과 기본적인 사용법을 정리해보았습니다. 앞으로 더 깊이 있는 데이터 분석을 위해 데이터 변형, 병합, 시각화 등의 기능도 익히는 것이 중요합니다.