본문 바로가기
Python/Pandas

Pandas 10분 가이드: 데이터 분석 맛보기

by 나무가 2024. 12. 10.
 

📘 1. Pandas란?

Pandas는 Python의 데이터 분석 라이브러리로, 엑셀과 유사한 데이터프레임(DataFrame) 구조를 제공합니다. 대규모 데이터를 효율적으로 관리하고, 정렬, 필터링, 집계 등의 작업을 손쉽게 수행할 수 있습니다.


📘 2. Pandas 설치 및 시작하기

Pandas 설치하기

pip install pandas

 

Pandas 불러오기

import pandas as pd

📘 3. Pandas의 주요 자료 구조

  1. Series: 1차원 데이터 (엑셀의 한 열과 유사)
  2. DataFrame: 2차원 데이터 (엑셀의 표와 유사)
# Series 생성 예시
s = pd.Series([1, 2, 3, 4, 5])
print(s)

# DataFrame 생성 예시
df = pd.DataFrame({
    '이름': ['홍길동', '이순신', '강감찬'],
    '나이': [20, 30, 40],
    '직업': ['학생', '군인', '정치인']
})
print(df)

 

결과 >>>

# Series
0    1
1    2
2    3
3    4
4    5
dtype: int64

# DataFrame
   이름  나이    직업
0  홍길동  20   학생
1  이순신  30   군인
2  강감찬  40   정치인

📘 4. 데이터 불러오기와 저장하기

CSV 파일 불러오기

df = pd.read_csv('data.csv')

 

CSV 파일로 저장하기

df.to_csv('output.csv', index=False)

 

엑셀 파일 불러오기

df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

 

엑셀 파일로 저장하기

df.to_excel('output.xlsx', index=False)

📘 5. 데이터 탐색 (EDA)

데이터 미리보기

df.head(5)  # 상위 5개 행 확인
df.tail(5)  # 하위 5개 행 확인

 

데이터 구조와 기본 정보

df.info()   # 데이터 구조 확인
df.describe()  # 통계 요약 (평균, 표준편차 등)

 

특정 열/행 선택

df['이름']  # '이름' 열 선택
df.loc[0]  # 첫 번째 행 선택
df.iloc[1]  # 두 번째 행 선택

📘 6. 데이터 필터링과 조건부 선택

조건부 필터링

df[df['나이'] > 25]  # 나이가 25보다 큰 행만 선택

 

다중 조건 필터링

df[(df['나이'] > 25) & (df['직업'] == '군인')]  # 나이가 25보다 크고 직업이 '군인'인 행만 선택

📘 7. 데이터 정제 (결측치 처리)

결측치 확인

df.isnull().sum()  # 결측치 개수 확인

 

결측치 제거

df = df.dropna()  # 결측치가 있는 행 제거

 

결측치 채우기

df['나이'] = df['나이'].fillna(30)  # 결측치를 30으로 채우기

📘 8. 데이터 조작 (정렬, 변환, 그룹화)

정렬하기

df.sort_values(by='나이', ascending=True)  # '나이' 기준으로 오름차순 정렬

 

데이터 변환 (열 추가/삭제)

df['새로운 열'] = df['나이'] * 2  # '나이'를 2배로 해서 새로운 열 추가
df = df.drop('직업', axis=1)  # '직업' 열 삭제

 

그룹화

df.groupby('직업')['나이'].mean()  # '직업'별로 '나이'의 평균 구하기

📘 9. 여러 데이터프레임 합치기

  1. 세로로 합치기 (concat)
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})
result = pd.concat([df1, df2])
  1. 가로로 합치기 (merge)
left = pd.DataFrame({'key': ['A', 'B', 'C'], 'value': [1, 2, 3]})
right = pd.DataFrame({'key': ['A', 'B', 'D'], 'value2': [4, 5, 6]})
result = pd.merge(left, right, on='key', how='inner')

📘 10. 실전 예제: 간단한 실습

🎉 프로젝트: 학생 성적 분석

데이터

이름 과목 점수

홍길동 수학 90
이순신 영어 80
강감찬 과학 70
df = pd.DataFrame({
    '이름': ['홍길동', '이순신', '강감찬'],
    '과목': ['수학', '영어', '과학'],
    '점수': [90, 80, 70]
})

# 평균 점수 구하기
평균 = df['점수'].mean()
print(f"평균 점수: {평균}")

📘 마무리

Pandas는 데이터 분석의 강력한 도구입니다. 파일 입출력부터 데이터 정제, 시각화, 데이터 분석 프로젝트까지 활용할 수 있습니다. 간단한 실습을 진행하신 당신, 이젠 조금 더 pandas에 대해서 알아보시고 싶지 않으신가요?

 

'Python > Pandas' 카테고리의 다른 글

Pandas : to_parquet 수행 시 유의사항  (1) 2020.12.26