Pandas
Pandas
Pandas란? 데이터 분석의 강력한 도구!
Pandas는 파이썬의 데이터 분석 라이브러리로, numpy 기반의 고수준 자료구조와 효율적인 데이터 처리 기능을 제공합니다.
데이터 분석, 통계, 시각화, 대용량 데이터 처리까지 다양한 기능을 지원하며, 데이터베이스, 엑셀, CSV 등의 다양한 형식과 연동이 가능합니다.
🔹 Pandas의 핵심 개념
✅ Pandas의 구성 요소
Pandas(2.0)는 자료구조와 알고리즘을 기반으로 하며, 다음과 같은 핵심 요소를 포함합니다.
numpy(ndarray)+dict(해시 기반 데이터 저장)- 함수형 프로그래밍(벡터화 연산) 지원
- 데이터베이스(GroupBy) 연산 가능
- 엑셀(Pivot Table) 기능과 유사한 데이터 조작 가능
🔹 Pandas의 데이터 구조
| 데이터 구조 | 설명 |
|---|---|
Series | 1차원 배열(인덱스를 포함한 데이터) |
DataFrame | 2차원 데이터(행과 열로 구성된 테이블 형태) |
Panel (폐지됨) | 3차원 이상의 데이터 구조 (현재는 MultiIndex 사용) |
✅ 인덱스(Index) 종류
Pandas는 다양한 인덱스를 제공하며, 데이터 분석 및 조회 성능을 최적화합니다.
RangeIndex: 기본적인 정수형 인덱스 (0부터 시작)DateTimeIndex: 시계열 분석을 위한 날짜/시간 인덱스MultiIndex: 계층적 인덱스 지원 (복합적인 인덱싱 구조)
🔹 Pandas의 주요 기능
✅ 고속 데이터 처리 및 저장
Pandas는 다양한 파일 포맷을 지원하며, 효율적인 데이터 저장 및 불러오기가 가능합니다.
| 파일 포맷 | 설명 |
|---|---|
.csv | 일반적인 데이터 파일 형식 |
.json | 웹 데이터 교환에 사용되는 형식 |
.parquet | 고속 대용량 데이터 처리에 최적화된 형식 |
.feather | 메모리 효율적인 데이터 저장 지원 |
✅ 강력한 데이터 연산 기능
- 벡터화 연산 (
numpy기반의 고속 연산 지원) - 데이터베이스 연동 (
SQL스타일의query()지원) - 그룹화(GroupBy) 연산
- 계층적 인덱스(MultiIndex) 처리
- 시계열 분석 (Time Series Analysis)
🔹 Pandas의 통계 및 시각화 기능
✅ 통계 기능
describe(),mean(),median(),std(),corr()등 다양한 통계 함수 제공- 결측치 처리 (
fillna(),dropna()) - 이상치 탐지 및 제거
✅ 시각화(Matplotlib 연동)
Pandas는 matplotlib과 연동하여 데이터를 시각화할 수 있습니다.
import pandas as pd import matplotlib.pyplot as plt # 샘플 데이터 생성 data = {'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50]} df = pd.DataFrame(data) # 그래프 출력 df.plot(kind='line') plt.show() 🎯 Pandas의 활용 예제
✅ CSV 파일 읽고 쓰기
df = pd.read_csv("data.csv") # CSV 파일 불러오기 df.to_csv("output.csv", index=False) # CSV 파일 저장 ✅ 데이터베이스 연결(Query 실행)
import sqlite3 conn = sqlite3.connect("database.db") df = pd.read_sql_query("SELECT * FROM table_name", conn) ✅ 그룹화(GroupBy) 연산
df.groupby('column_name').sum() ✅ Pivot Table 활용
df.pivot_table(values='sales', index='month', columns='category', aggfunc='sum') Pandas를 배우면 할 수 있는 것
✔ 데이터 정리 및 전처리
✔ 대용량 데이터 처리
✔ 시계열 분석 및 통계
✔ SQL 스타일의 데이터 조작
✔ 데이터 시각화
Pandas는 데이터 분석을 위한 가장 강력한 라이브러리 중 하나이며, 이를 잘 활용하면 데이터 처리 속도와 효율성을 크게 향상시킬 수 있습니다.
This post is licensed under CC BY 4.0 by the author.