본문 바로가기

Architecture for Software/Python

[Python] Pandas에 대해서

 

Pandas 는 
데이터 분석을 위한 강력한 Python Library 입니다.

 

https://pandas.pydata.org/

 

 

판다스(Pandas)에 대해서

Pandas는 R을 모티브로 만들어진 파이썬 라이브러리입니다.

 

Pandas의 주요 기능

  • 데이터 저장: 2차원 데이터를 저장하고 조작하기 위한 DataFrame 및 1차원 데이터를 저장하기 위한 Series 자료구조 제공
  • 데이터 불러오기/내보내기: CSV, Excel, SQL, JSON 등 다양한 형식의 데이터를 Import / Export 제공
  • 데이터 정제: 누락된 값 처리, 이상치 제거, 데이터 형식 변환 등 다양한 데이터 정제 기능을 제공
  • 데이터 분석: 평균, 표준편차, 분포, 상관관계 등 다양한 통계 분석 기능을 제공
  • 데이터 시각화: Matplotlib, Seaborn 등과의 통합을 통해 간편하게 데이터 시각화

 

Pandas의 장점

  • 편리함: 간단하고 직관적인 API를 통해 사용하기 쉽습니다.
  • 강력함: 다양한 데이터 분석 기능을 제공합니다.
  • 유연성: 다양한 형식의 데이터를 처리할 수 있습니다.
  • 활발한 커뮤니티: 방대한 사용자 커뮤니티와 풍부한 온라인 리소스를 제공합니다.

 

Pandas의 활용 분야

  • 데이터 분석: 금융, 의료, 과학, 엔지니어링 등 다양한 분야에서 데이터 분석에 활용됩니다.
  • 머신러닝: 머신러닝 모델 학습을 위한 데이터 전처리 및 분석에 활용됩니다.
  • 웹 개발: 웹 애플리케이션에서 데이터 시각화 및 분석에 활용됩니다.

 


판다스(Pandas)의 공부하기

판다스를 공부하기 전에 데이터 멍잉(Data munging)에 대해서 알아봅시다.

데이터 멍잉은 데이터를 처리하기 위하여 전처리, 파싱, 필터링 등을 통해서 데이터를 이리저리 굴리면서 다룬다는 뜻입니다.

 

판다스는 데이터 멍잉을 하기 좋은 파이썬 라이브러리입니다.

데이터 멍잉을 다른 말로는 데이터 랭글링(Data wrangling) 이라고 합니다.

 

데이터 랭글링(Data Wrangling) 이란

데이터 랭글링이란 데이터 멍잉보다는 조금 더 전문적으로 데이터를 처리하는 것을 뜻합니다.

원천 데이터(Raw data)를 가공하여 원하는 목적에 맞는 데이터를 가공해가는 과정을 의미합니다.

 

 

분석할 데이터를 탐색하고, 구조화하고, 정제하고, 변환하고, 검증하고, 게시하는 과정을 데이터 랭글링 이라고 합니다.

이를 통하여 향상된 데이터를 얻고 다양하게 이용할 수 있습니다.

 

데이터 랭글링(Data Wrangling)의 6단계

1. Discovering(탐색) : 데이터에 대한 깊은 이해를 하는 단계
2. Structuring(구조화) : 필요없는 행/컬럼 삭제 및 분석 가능한 형태로 구조화하는 단계
3. Cleaning(정제) : 데이터 이상치 결측치를 발견하고 처리하는 단계
4. Enriching(변환) : 데이터를 풍부하게 하기 위한 전략을 짜는 단계
5. Validating(검증) : 데이터의 분포 등을 검정하는 단계
6. Publishing(게시) : 데이터를 분석 모델의 인풋으로 입력하는 단계

 

 

판다스 10분안에 익히기

판다스를 10분안에 익히는 가장 좋은 방법은 https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html 를 보고 공부하는 방법입니다.

한국어로는 https://dataitgirls2.github.io/10minutes2pandas/ 를 참고하면 됩니다.

 

판다스 치트 쉬트

판다스를 공부하면서 가장 많이 참조하는 것이 판다스 치트 쉬트 https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf 입니다.

 

특히 데이터 재구조화(Data Reshaping)하는 과정의 경우 판다스에서 가장 멋지게 제공하는 기능이지만 가끔 헷갈리는 경우가 많으니 판다스 치트 쉬트를 참고하면 좋습니다.

 


판다스(Pandas)의 기본 자료 구조

판다스를 이해한다는 것은 결국 Series와 DataFrame을 이해한다는 것과 같습니다.

판다스의 가장 핵심적인 데이터 구조가 바로 Series와 DataFrame이기 때문입니다.

 

 

 

판다스의 Series란

Series: 1차원 배열과 유사하지만, 각 값에 고유한 인덱스를 가지고 있어 데이터를 효율적으로 관리하고 분석할 수 있습니다.

import pandas as pd

# 리스트에서 Series 생성
data = [1, 2, 3, 4, 5]
s = pd.Series(data)
print(s)

# 딕셔너리에서 Series 생성
data = {"a": 1, "b": 2, "c": 3}
s = pd.Series(data)
print(s)

 

 

판다스의 DataFrame 이란

DataFrame: 2차원 배열과 유사하지만, 행과 열에 각각 인덱스를 가지고 있으며, 여러 개의 Series를 모아서 처리할 수 있습니다.

 

import pandas as pd

# 리스트에서 DataFrame 생성
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
df = pd.DataFrame(data, columns=["A", "B", "C"])
print(df)

# 딕셔너리 리스트에서 DataFrame 생성
data = [{"A": 1, "B": 2}, {"A": 4, "B": 5}, {"A": 7, "B": 8}]
df = pd.DataFrame(data)
print(df)

 

 

더 자세한 실습은 https://pandas.pydata.org/pandas-docs/stable/user_guide/dsintro.html 를 참고하세요!