Data Engineering/python

EP16 | 고급 Python 활용 #5 | 데이터 처리와 Pandas 기본 사용법

ygtoken 2025. 3. 19. 23:00
728x90

이 글에서 다루는 개념

Python에서 Pandas 라이브러리를 사용하면 데이터 분석과 처리가 더욱 쉬워집니다.
이번 글에서는 다음 내용을 학습합니다.

  • Pandas 라이브러리 소개 및 설치 방법
  • 데이터프레임(DataFrame)과 시리즈(Series)의 개념
  • CSV 파일을 불러오고 저장하는 방법
  • 데이터 조회 및 필터링, 정렬
  • 기본적인 데이터 전처리 (결측치 처리, 중복 제거 등)

1️⃣ Pandas란?

📌 Pandas는 Python에서 데이터를 분석하고 처리하는 데 사용되는 강력한 라이브러리입니다.

  • 엑셀처럼 표 형태(데이터프레임)로 데이터를 관리
  • CSV, Excel, JSON, SQL 등 다양한 데이터 형식 지원
  • 데이터 필터링, 정렬, 변환, 그룹화 등 강력한 기능 제공

📌 설치 방법 (pandas가 없을 경우)

pip install pandas

2️⃣ 데이터프레임(DataFrame)과 시리즈(Series) 개념

Pandas에서 가장 중요한 두 가지 데이터 구조는 SeriesDataFrame입니다.

🔹 Series (1차원 데이터)

import pandas as pd

data = pd.Series([10, 20, 30, 40, 50])
print(data)

 

📌 출력 결과

0    10
1    20
2    30
3    40
4    50
dtype: int64
  • Series는 **인덱스(index)와 값(value)**으로 구성됨

🔹 DataFrame (2차원 데이터, 테이블 형태)

data = {
    "Name": ["Alice", "Bob", "Charlie"],
    "Age": [25, 30, 35],
    "City": ["Seoul", "Busan", "Incheon"]
}

df = pd.DataFrame(data)
print(df)

 

📌 출력 결과

     Name  Age    City
0   Alice   25   Seoul
1     Bob   30   Busan
2  Charlie   35  Incheon
  • DataFrame은 여러 개의 Series(열)로 구성된 2차원 테이블 구조

3️⃣ CSV 파일 불러오기 및 저장하기

🔹 CSV 파일 불러오기 (read_csv())

df = pd.read_csv("data.csv")
print(df.head())  # 상위 5개 데이터 출력

 

📌 옵션 설명

  • df.head() → 처음 5개 행 출력
  • df.tail() → 마지막 5개 행 출력
  • df.info() → 데이터 요약 정보 출력

🔹 CSV 파일 저장하기 (to_csv())

df.to_csv("output.csv", index=False)
  • index=False → 인덱스를 CSV에 저장하지 않음

4️⃣ 데이터 조회 및 필터링

🔹 특정 열 선택 (df["컬럼명"])

print(df["Name"])

🔹 특정 행 선택 (df.loc[], df.iloc[])

# 행 번호로 접근
print(df.iloc[0])  # 첫 번째 행

# 조건 필터링
print(df[df["Age"] > 25])  # 나이가 25 초과인 행만 선택

5️⃣ 데이터 정렬 (sort_values())

🔹 특정 열을 기준으로 정렬

df_sorted = df.sort_values(by="Age", ascending=False)
print(df_sorted)
  • ascending=False → 내림차순 정렬

6️⃣ 데이터 전처리 (결측치 처리, 중복 제거 등)

🔹 결측치(NaN) 처리 (dropna(), fillna())

df = df.dropna()  # 결측치가 있는 행 제거
df["Age"] = df["Age"].fillna(df["Age"].mean())  # 평균값으로 채우기

🔹 중복 데이터 제거 (drop_duplicates())

df = df.drop_duplicates()

📌 실전 문제: Pandas 연습하기


문제 1: CSV 파일 불러오기

📌 CSV 파일 students.csv를 불러와서 처음 5개의 데이터를 출력하세요.

import pandas as pd
# 🔽 여기에 코드 작성
import pandas as pd

df = pd.read_csv("students.csv")
print(df.head())  # 상위 5개 행 출력

문제 2: 특정 열과 행 선택하기

📌 DataFrame에서 "Name" 열만 선택하고, "Age"가 25 이상인 데이터만 출력하세요.

# 🔽 여기에 코드 작성
print(df["Name"])  # "Name" 열 선택

filtered_df = df[df["Age"] >= 25]
print(filtered_df)

문제 3: 데이터 정렬하기

📌 DataFrame을 "Age"를 기준으로 내림차순 정렬하세요.

# 🔽 여기에 코드 작성
df_sorted = df.sort_values(by="Age", ascending=False)
print(df_sorted)

문제 4: 결측치(NaN) 처리하기

📌 결측치를 평균값으로 채우고, 중복 데이터를 제거하세요.

# 🔽 여기에 코드 작성
df["Age"] = df["Age"].fillna(df["Age"].mean())  # 평균값으로 채우기
df = df.drop_duplicates()  # 중복 제거
print(df)

 

 

728x90