728x90
반응형
📌 개요
Pandas는 데이터 분석과 조작을 위한 강력한 Python 라이브러리로, 데이터 사이언스 및 머신러닝 프로젝트에서 필수적으로 사용됩니다. 이번 포스팅에서는 Pandas의 핵심 기능을 정리하고, 실습을 통해 기본적인 데이터 핸들링 방법을 익혀보겠습니다.
1️⃣ Pandas란?
Pandas는 표 형태(테이블) 데이터 처리를 위한 라이브러리로, DataFrame과 Series라는 두 가지 주요 데이터 구조를 제공합니다.
- Series: 1차원 배열 구조 (index + value)
- DataFrame: 2차원 테이블 구조 (행과 열로 구성됨)
import pandas as pd
import numpy as np
# Series 예제
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print(s)
# DataFrame 예제
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['Seoul', 'Busan', 'Incheon']
}
df = pd.DataFrame(data)
print(df)
2️⃣ 데이터 불러오기
CSV, Excel, SQL 등의 외부 데이터를 Pandas로 불러올 수 있습니다.
# CSV 파일 읽기
df = pd.read_csv('data.csv')
# 엑셀 파일 읽기
df = pd.read_excel('data.xlsx')
3️⃣ 데이터 조회 및 기초 정보 확인
데이터를 분석하기 전에, 기본적인 정보를 조회하는 것이 중요합니다.
# 데이터 크기 확인
print(df.shape) # (행, 열)
# 데이터 앞부분 출력
print(df.head()) # 기본 5개 행 출력
# 데이터 타입 확인
print(df.info())
# 기술 통계 요약
print(df.describe())
4️⃣ 데이터 필터링 및 선택
특정 열 또는 행을 선택하는 방법을 알아봅니다.
# 특정 컬럼 선택
print(df['Name'])
# 여러 컬럼 선택
print(df[['Name', 'Age']])
# 특정 조건 필터링 (30세 이상)
print(df[df['Age'] >= 30])
5️⃣ 데이터 정렬 및 그룹화
데이터를 특정 기준으로 정렬하거나 그룹화할 수 있습니다.
# 나이 순으로 정렬
print(df.sort_values(by='Age', ascending=True))
# 도시별 평균 나이 계산
print(df.groupby('City')['Age'].mean())
6️⃣ 데이터 수정 및 추가
기존 데이터를 변경하거나 새로운 데이터를 추가하는 방법을 알아봅니다.
# 새로운 컬럼 추가
df['Salary'] = [50000, 60000, 70000]
# 값 변경
df.loc[df['Name'] == 'Alice', 'Age'] = 26
# 행 추가
df = df.append({'Name': 'David', 'Age': 40, 'City': 'Daegu', 'Salary': 80000}, ignore_index=True)
7️⃣ 결측값 처리
데이터셋에서 결측값(NaN)을 처리하는 것은 중요한 과정입니다.
# 결측값 확인
print(df.isnull().sum())
# 결측값 제거
df.dropna(inplace=True)
# 결측값 채우기
df.fillna({'Age': df['Age'].mean()}, inplace=True)
8️⃣ 데이터 저장
처리한 데이터를 저장하는 방법입니다.
# CSV로 저장
df.to_csv('processed_data.csv', index=False)
# 엑셀로 저장
df.to_excel('processed_data.xlsx', index=False)
📌 마무리
이번 포스팅에서는 Pandas의 기본적인 기능을 익혔습니다. Pandas는 데이터 분석의 기본이 되는 라이브러리이므로, 다양한 기능을 직접 실습해보면서 익숙해지는 것이 중요합니다. 다음 포스팅에서는 SQL을 활용한 데이터 추출 및 가공 방법을 다뤄보겠습니다!
728x90
반응형
'Daily Data Log' 카테고리의 다른 글
| [Day 6] 머신러닝 모델 최적화 - 프리미어리그 경기 성과 예측 개선하기 (0) | 2025.03.11 |
|---|---|
| [Day 5] 머신러닝을 활용한 프리미어리그 선수 경기당 득점 예측 (1) | 2025.03.10 |
| [Day 4] 탐색적 데이터 분석(EDA) 실습 프로젝트 - 24/25 PL 선수 통계 (0) | 2025.03.09 |
| [Day 3] Matplotlib & Seaborn을 활용한 데이터 시각화 (0) | 2025.03.08 |
| [Day 2] SQL을 활용한 데이터 추출 및 가공 (0) | 2025.03.07 |