Python Pandas 완벽 가이드: 데이터 분석의 시작

Python & Pandas

파이썬에서 데이터를 다루는 가장 강력한 라이브러리 중 하나인 Pandas는 데이터 분석 및 조작을 위한 필수 도구입니다.

이번 포스트에서는 Pandas의 핵심 개념과 함께 공부한 내용을 기록하며 공유드리려 합니다.


1. Pandas란 무엇인가?

 

1.1 Pandas의 정의

Pandas는 데이터 분석과 데이터 조작을 간단하고 효율적으로 수행 할 수 있도록 설계된 파이썬 라이브러리입니다.

데이터 프레임(DataFrame)과 시리즈(Series)를 사용하여 테이블 형태의 데이터를 다룰 수 있습니다.

 

1.2 Pandas의 주요기능

  • 데이터 읽기 및 쓰기 (CSV, Exel, Sql, Json 등)
  • 데이터 정렬 및 필터링
  • 결측치 처리
  • 데이터 집계와 통계 계산
  • 데이터 시각화와 연동 (Matplotlib, Seaborn 등)

2. Pandas 설치 및 기본 사용법

 

2.1 파이썬에서 Pandas 설치

 

pip install pandas

 

2.2 기본 임포트

import pandas as pd

 


3. Pandas의 핵심 데이터 구조

 

3.1 Series

  • 1차원 배열로 인덱스를 포함한 데이터 구조입니다.
import pandas as pd

data = [10, 20, 30]
series = pd.Series(data, index=["a", "b", "c"])
print(series)

#출력
a    10
b    20
c    30
dtype: int64

 

3.2 DataFrame

  • 2차원 테이블 형태행(row)열(column)로 구성된 데이터 구조입니다.
data = {"Name": ["Alice", "Bob"], "Age": [25, 30]}
df = pd.DataFrame(data)
print(df)


#출력
    Name  Age
0  Alice   25
1    Bob   30

4. 데이터 읽기와 쓰기

 

4.1 CSV 파일 읽기

df = pd.read_csv("data.csv")

 

4.2 Excel 파일 읽기

df = pd.read_excel("data.xlsx")

 

4.3 데이터 저장

df.to_csv("output.csv", index=False)
df.to_excel("output.xlsx", index=False)

 


5. 데이터 탐색

 

5.1 데이터 요약

print(df.head())    # 처음 5행
print(df.tail())    # 마지막 5행
print(df.info())    # 데이터 요약 정보
print(df.describe())  # 기본 통계 정보

 

5.2 데이터 선택

  • 열선택:
print(df["Name"])
  • 행선택:
print(df.loc[0])  # 인덱스 0인 행
  • 조건 필터링:
print(df[df["Age"] > 25])

6. 데이터 조작

 

6.1 데이터 정렬

df.sort_values("Age", ascending=True, inplace=True)

 

6.2 결측치 처리

df.fillna(0, inplace=True)  # 결측값 채우기
df.dropna(inplace=True)     # 결측값 삭제
참고 : 
- 결측치를 제거하려면 dropna()  대체하려면 fillna() 를 사용합니다.

6.3 데이터 추가

df["Salary"] = [50000, 60000]  # 새로운 열 추가

 

6.4 데이터 그룹화

grouped = df.groupby("Age").mean()
print(grouped)

7. 데이터 시각화 연동

 

Pandas는 Matplotlib과 같은 시각화 라이브러리와 쉽게 연동할 수 있습니다.

import matplotlib.pyplot as plt

df["Age"].plot(kind="bar")
plt.show()

8. 실용 예제

 

8.1 주식 데이터 분석

# CSV 파일 읽기
df = pd.read_csv("stock_data.csv")

# 데이터 탐색
print(df.info())
print(df.describe())

# 특정 날짜의 종가 선택
close_price = df[df["Date"] == "2023-01-01"]["Close"]
print(close_price)

# 평균 종가 계산
mean_close = df["Close"].mean()
print(f"평균 종가는 {mean_close}입니다.")

 

8.2 웹 데이터 크롤링 후 처리

import requests
from bs4 import BeautifulSoup

# 웹에서 데이터 크롤링
url = "https://example.com/data"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

# 크롤링한 데이터를 Pandas로 변환
data = {"Name": ["Alice", "Bob"], "Score": [85, 90]}
df = pd.DataFrame(data)

# 데이터 저장
df.to_csv("web_data.csv", index=False)

 

요약

 

다음 포스트에서는 NumPy를 활용한 고급 배열 연산을 공부하고 공유 예정입니다 ~ :)