📘 1. Pandas란?
Pandas는 Python의 데이터 분석 라이브러리로, 엑셀과 유사한 데이터프레임(DataFrame) 구조를 제공합니다. 대규모 데이터를 효율적으로 관리하고, 정렬, 필터링, 집계 등의 작업을 손쉽게 수행할 수 있습니다.
📘 2. Pandas 설치 및 시작하기
Pandas 설치하기
pip install pandas
Pandas 불러오기
import pandas as pd
📘 3. Pandas의 주요 자료 구조
- Series: 1차원 데이터 (엑셀의 한 열과 유사)
- 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. 여러 데이터프레임 합치기
- 세로로 합치기 (concat)
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})
result = pd.concat([df1, df2])
- 가로로 합치기 (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 |
---|