Pandas- Basic Pandas
Pandas는 Python에서 데이터 분석을 위한 핵심 라이브러리로, 두 가지 주요 구조인 Series와 DataFrame을 중심으로 구성됩니다.
Series란?
Series는 Pandas의 1차원 배열 구조입니다.
- numpy array와 유사하지만, **인덱스(index)**를 가질 수 있습니다.
- 인덱스를 지정하지 않으면 기본적으로 0부터 시작하는 정수형 index가 자동 부여됩니다.
Python
import pandas as pd
s = pd.Series([1, 2, 3, 4])
print(s)
출력 결과:
0 1
1 2
2 3
3 4
dtype: int64
- 왼쪽은 인덱스, 오른쪽은 값입니다.
- dtype은 데이터 타입(여기서는 64비트 정수)을 나타냅니다.
DataFrame이란?
DataFrame은 Pandas의 2차원 테이블 구조 (행 × 열)입니다.
- 여러 개의 Series를 열(column) 단위로 결합한 형태입니다.
- 엑셀(Excel)과 유사한 구조를 가집니다.
Python
import numpy as np
import pandas as pd # pandas import를 명시적으로 추가
data = np.random.randn(6, 4)
df = pd.DataFrame(data, columns=list('WXYZ'))
print(df)
출력 예시:
W X Y Z
0 0.123456 1.234567 0.123456 -1.234567
1 ... ... ... ...
2 ... ... ... ...
3 ... ... ... ...
4 ... ... ... ...
5 ... ... ... ...
DataFrame 구조 정보 확인
DataFrame의 전반적인 구조와 통계 정보를 확인하는 중요한 메서드들입니다.
Python
df.info() # 데이터 타입, 결측치(Non-Null Count), 메모리 사용량 등 요약 정보
df.describe() # 수치형 데이터의 개수, 평균, 표준편차, 최솟값, 최댓값, 사분위수 등 요약 통계
df.columns # 컬럼(열) 이름들을 리스트 형태로 확인
예시 설명:
- df.info()는 전체 컬럼의 이름, 결측치가 아닌 값의 개수(Non-Null Count), 데이터 타입(Dtype) 등을 종합적으로 보여줍니다.
- df.columns는 컬럼 이름들을 Index(['W', 'X', 'Y', 'Z'], dtype='object') 형태로 반환합니다.
DataFrame 컬럼 접근
DataFrame에서 특정 컬럼(열)의 데이터를 선택하는 방법입니다.
Python
df['W'] # 'W'라는 이름의 특정 컬럼만 Series 형태로 출력
DataFrame 인덱싱 (행 접근)
DataFrame에서 특정 행 또는 행의 범위를 선택하는 방법입니다.
Python
df[1:3] # 인덱스 1부터 2까지의 행 (3은 포함되지 않음)
df.loc[0] # 인덱스 라벨이 0인 행을 선택 (라벨 기반 인덱싱)
df.iloc[0] # 첫 번째 행을 선택 (위치 기반 인덱싱, 0은 첫 번째 위치)
열 추가 / 열 삭제
DataFrame의 열을 동적으로 추가하거나 제거할 수 있습니다.
열 추가
Python
df['NEW'] = df['W'] + df['X'] # 'W' 컬럼과 'X' 컬럼의 값을 더하여 'NEW' 컬럼 생성
열 삭제
drop() 메서드를 사용하며, axis=1은 열(column)을 의미하고, inplace=True는 원본 DataFrame에 변경사항을 즉시 적용하라는 의미입니다.
Python
df.drop('NEW', axis=1, inplace=True) # 'NEW' 컬럼 삭제
결측치(Missing Data) 처리
데이터 분석 시 결측치(NaN: Not a Number)는 흔하게 발생하며, Pandas는 이를 처리하는 기능을 제공합니다.
결측치가 있는 행 삭제
dropna() 메서드는 결측치(NaN)가 하나라도 포함된 행을 제거합니다.
Python
df.dropna()
결측치가 있는 열 삭제
dropna(axis=1)는 결측치(NaN)가 하나라도 포함된 열을 제거합니다.
Python
df.dropna(axis=1)
결측치를 지정 값으로 채우기
fillna() 메서드는 결측치(NaN)를 지정한 값으로 대체합니다.
Python
df.fillna(0) # 모든 NaN 값을 0으로 채움
CSV 파일 불러오기
Pandas는 다양한 형식의 외부 데이터를 쉽게 불러올 수 있습니다. CSV 파일은 pd.read_csv()를 사용합니다.
Python
df = pd.read_csv("winequality-red.csv", sep=';') # 세미콜론(;)으로 구분된 CSV 파일 불러오기
df.head() # 불러온 DataFrame의 상위 5개 행 미리보기
요약 정리
항목 | 설명 |
Series | 1차원 배열. 값과 인덱스로 구성 |
DataFrame | 2차원 테이블. 여러 개의 Series로 구성 |
df.info() | 데이터 개요, 타입, 결측치 확인 |
df.describe() | 수치형 컬럼의 통계 요약 |
df.columns | 컬럼(열) 이름 확인 |
df['col'] | 특정 컬럼 접근 |
df.loc[행] | 라벨(이름) 기반 행 접근 |
df.iloc[행번호] | 위치(정수 인덱스) 기반 행 접근 |
df.dropna() | 결측치가 있는 행 제거 |
df.fillna(값) | 결측치를 지정 값으로 대체 |
df.read_csv() | CSV 파일 불러오기 |
'머신러닝&딥러닝' 카테고리의 다른 글
[머신러닝] 머신러닝 필수 전처리: Feature Scaling 완벽 가이드 (0) | 2025.07.02 |
---|---|
[머신러닝·딥러닝]파이썬 시각화의 시작, matplotlib 필수 문법 총정리 (4) | 2025.07.02 |
[머신러닝·딥러닝]NumPy 기초 정리 - 배열 생성부터 axis 개념까지 명확하게 (0) | 2025.07.01 |
[딥러닝]경사하강법 핵심 정리: 딥러닝 모델은 어떻게 학습될까? (4) | 2025.06.30 |
[머신러닝·딥러닝]머신러닝·딥러닝 입문자를 위한 필수 파이썬 문법 정리 (2) | 2025.06.30 |