파이썬에서 데이터를 다루는 가장 강력한 라이브러리 중 하나인 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를 활용한 고급 배열 연산을 공부하고 공유 예정입니다 ~ :)
'Data Analysis' 카테고리의 다른 글
Pandas와 Matplotlib/Seaborn을 활용한 데이터 시각화: 완벽 가이드 (2) | 2024.11.29 |
---|---|
Python NumPy 완벽 가이드: 데이터 과학의 기초 (2) | 2024.11.28 |
선형대수 (2) (0) | 2024.07.18 |
선형대수 (1) (0) | 2024.07.16 |
ADsP - 데이터의 이해(2) (0) | 2024.07.05 |