Pandas는 파이썬에서 데이터 분석과 조작을 위한 강력한 라이브러리이다.
빠르고 유연하며 표현력이 뛰어난 데이터 구조를 제공하여 다양한 형태의 데이터를 효율적으로 처리할 수 있다.
Pandas의 기본 구조
Pandas의 주요 데이터 구조는 두 가지이다.
- Series: 1차원 배열 구조로, 인덱스가 있는 데이터의 1차원 시퀀스이다.
- DataFrame: 2차원 표 구조로, 행과 열로 구성된 데이터 구조이다.
Pandas 설치 유무는 프롬프트에서 아래와 같은 명령어로 확인할 수 있다.
> pip list | grep pandas
설치되어 있지 않다면
pip install pandas 명령어로 설치할 수 있다.
DataFrame 생성
파이썬 자료구조인 딕셔너리(Dictionary)로 부터 데이타프레임으로 변환시켜준다.
출력 결과는 다음과 같다.
4개의 행을 가진 형태의 데이타프레임이 출력되는 것을 확인할 수 있다.
위와같이 딕셔너리로 데이타프레임을 생성할 수 있지만
일반적으로 대량의 데이타가 필요하므로 파일형태(csv, excel, json)의 파일로 부터 생성하는게 보통이다.
DataFrame 기본정보 확인
# 처음 5행 보기
print(df.head())
# 기본 통계 정보
print(df.describe())
# 컬럼 정보
print(df.columns)
# 데이터 크기
print(df.shape)
# 데이터 타입
print(df.dtypes)
데이터 선택 및 필터링
# 열 선택
print(df['이름'])
print(df[['이름', '나이']])
# 행 선택 (위치 기반)
print(df.iloc[0]) # 첫 번째 행
print(df.iloc[0:2]) # 첫 번째와 두 번째 행
# 행 선택 (라벨 기반)
print(df.loc[0]) # 인덱스가 0인 행
print(df.loc[0:2]) # 인덱스가 0~2인 행
# 조건 기반 필터링
print(df[df['나이'] > 25])
print(df[(df['나이'] > 25) & (df['성별'] == '여')])
데이타조작
# 새로운 컬럼 추가
df['NEW_컬럼'] = df['점수'] > 80
# 나이 기준 오름차순 정렬
print(df.sort_values('나이'))
# 점수 기준 내림차순 정렬
print(df.sort_values('점수', ascending=False))
# 여러 열 기준 정렬
print(df.sort_values(['성별', '나이']))
# 성별 기준 그룹화 후 평균 계산
print(df.groupby('성별').mean())
# 성별 기준 그룹화 후 여러 집계 함수 적용
print(df.groupby('성별').agg({
'나이': 'mean',
'점수': ['min', 'max', 'mean']
}))
# 결측치 확인
print(df.isnull().sum())
# 결측치 제거
df_clean = df.dropna()
# 결측치 채우기
df_filled = df.fillna({
'나이': df['나이'].mean(),
'점수': 0
})
결론
Pandas는 데이터 분석과 조작을 위한 강력한 파이썬 라이브러리로, 데이터 과학과 관련된 다양한 작업을 효율적으로 수행할 수 있게 해준다. 더 발전된 Pandas 사용법을 익히고 싶다면 공식 문서와 다양한 튜토리얼을 참고하는 것이다.
실제 데이터를 가지고 직접 실습해보는 것이 가장 효과적인 학습 방법이다.
Pandas를 더 깊이 학습하고 싶다면 다음 자료을 참고
- Pandas 공식 문서: https://pandas.pydata.org/docs/
'파이썬(Python)' 카테고리의 다른 글
파이썬(Python) 파일 입출력 기초 - 초보자를 위한 가이드 (0) | 2025.03.03 |
---|---|
VScode 와 Qt Desinger 연동 완벽가이드 - 2 (0) | 2025.02.27 |
VSCode에서 Qt Designer 사용하기 – 설치부터 연동까지 완벽 가이드 (0) | 2025.02.20 |
초보자도 쉽게 따라하는 Qt Designer 설치 가이드 (0) | 2025.02.14 |
파이썬(Python) 함수와 모듈 완벽 가이드 (초보자용) (0) | 2025.02.10 |