Pandas#
데이터를 다루기 위한 강력한 도구로, 엑셀의 스프레드시트와 비슷한 형태로 데이터를 처리할 수 있게 해준다.
가장 핵심이 되는 두 가지 데이터 구조는 Series(1차원)와 DataFrame(2차원)이다.
데이터 구조 상세 설명:
- Series
Series는 1차원 배열과 같은 구조. 인덱스를 가지고 있어서 데이터에 쉽게 접근할 수 있다.
1
2
3
4
5
6
7
8
| import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
# 결과:
# 0 1
# 1 2
# 2 3
# 3 4
# 4 5
|
- DataFrame
DataFrame은 2차원 테이블 형태의 데이터 구조이다. 엑셀 시트처럼 행과 열로 구성되어 있다.
1
2
3
4
5
6
| data = {
'이름': ['김철수', '박영희', '이민수'],
'나이': [25, 28, 30],
'직업': ['학생', '회사원', '교사']
}
df = pd.DataFrame(data)
|
주요 기능과 활용:
1
2
3
4
5
6
7
8
| # CSV 파일 읽기
df = pd.read_csv('파일명.csv')
# Excel 파일 읽기
df = pd.read_excel('파일명.xlsx')
# 파일로 저장하기
df.to_csv('저장할파일명.csv')
|
1
2
3
4
5
6
7
8
9
| # 기본 통계 정보 확인
df.describe()
# 결측치 처리
df.dropna() # 결측치가 있는 행 제거
df.fillna(0) # 결측치를 0으로 대체
# 데이터 그룹화와 집계
df.groupby('컬럼명').mean()
|
1
2
3
4
5
6
7
8
| # 특정 열 선택
df['컬럼명']
# 조건에 따른 필터링
df[df['나이'] > 25]
# 여러 조건 조합
df[(df['나이'] > 25) & (df['직업'] == '회사원')]
|
Pandas의 장점:
- 큰 데이터셋을 효율적으로 처리할 수 있다.
- 데이터 정제와 전처리가 쉽다.
- 다양한 형식의 파일을 쉽게 읽고 쓸 수 있다.
- 강력한 그룹화와 집계 기능을 제공한다.
- NumPy와 완벽하게 통합되어 있어 수치 계산이 효율적이다.
실제 활용 예시:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| import pandas as pd
import numpy as np
# 샘플 데이터 생성
dates = pd.date_range('20240101', periods=6)
df = pd.DataFrame(np.random.randn(6,4),
index=dates,
columns=['A', 'B', 'C', 'D'])
# 기본적인 데이터 탐색
print("데이터 앞부분 확인:")
print(df.head())
print("\n기본 통계 정보:")
print(df.describe())
print("\n결측치 확인:")
print(df.isnull().sum())
|
Pandas를 효과적으로 사용하기 위한 팁:
- 데이터 타입을 적절히 설정하면 메모리 사용량을 줄일 수 있다.
- 가능한 한 벡터화된 연산을 사용하면 처리 속도가 빨라진다.
- 큰 데이터셋을 다룰 때는 청크 단위로 처리하는 것이 좋다.
참고 및 출처#
pandas - Python Data Analysis Library