728x90
이 글에서 다루는 개념
Python에서 Pandas 라이브러리를 사용하면 데이터 분석과 처리가 더욱 쉬워집니다.
이번 글에서는 다음 내용을 학습합니다.
- Pandas 라이브러리 소개 및 설치 방법
- 데이터프레임(DataFrame)과 시리즈(Series)의 개념
- CSV 파일을 불러오고 저장하는 방법
- 데이터 조회 및 필터링, 정렬
- 기본적인 데이터 전처리 (결측치 처리, 중복 제거 등)
1️⃣ Pandas란?
📌 Pandas는 Python에서 데이터를 분석하고 처리하는 데 사용되는 강력한 라이브러리입니다.
- 엑셀처럼 표 형태(데이터프레임)로 데이터를 관리
- CSV, Excel, JSON, SQL 등 다양한 데이터 형식 지원
- 데이터 필터링, 정렬, 변환, 그룹화 등 강력한 기능 제공
📌 설치 방법 (pandas가 없을 경우)
pip install pandas
2️⃣ 데이터프레임(DataFrame)과 시리즈(Series) 개념
Pandas에서 가장 중요한 두 가지 데이터 구조는 Series와 DataFrame입니다.
🔹 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
'Data Engineering > python' 카테고리의 다른 글
EP18 | 고급 Python 활용 #7 | API 데이터 활용 (REST API, JSON 처리) (0) | 2025.03.19 |
---|---|
EP17 | 고급 Python 활용 #6 | Pandas를 활용한 고급 데이터 분석 (0) | 2025.03.19 |
EP15 | 고급 Python 활용 #4 | SQL과 데이터베이스 다루기 (sqlite3, SQLAlchemy) (0) | 2025.03.19 |
EP14 | 고급 Python 활용 #3 | 비동기 프로그래밍 (AsyncIO) (0) | 2025.03.19 |
EP13 | 고급 Python 활용 #2 | 멀티스레딩과 멀티프로세싱 (0) | 2025.03.19 |