Pandas
챕터 3-1 ~ 4
Pandas
- 파이썬 데이터 분석의 핵심 라이브러리
import pandas as pd
# 예시 데이터프레임 생성
df = pd.read_csv('data.csv') # 또는 직접 생성
컬럼(Column)
- 컬럼
- 데이터프레임(DataFrame)의 열(또는 변수)
- 행과 열로 구성, 각 열은 서로 다른 종류의 데이터를 담고 있습니다.
- 데이터프레임의 세로 방향에 있는 데이터들
- 특징
- 고유한 이름(라벨)을 가지고 있으며, 해당 컬럼의 데이터를 식별하는 데 사용
- 특정한 종류의 데이터를 담고 있고 숫자, 문자열, 날짜 등 다양한 유형의 데이터를 포함할 수 있음
- 시리즈(Series) 객체로 구성되어 있으며, 시리즈는 동일한 데이터 유형을 가진 1차원 배열과 유사함
- 데이터프레임의 일부로 간주되며, 해당 열의 데이터를 조작하고 접근할 수 있는 인터페이스를 제공함
- 컬럼명 변경하기
names = [’컬럼명1’ , ‘컬럼명2’ , … , ‘컬럼명 19’]
- 컬럼명 확인하기
데이터프레임.column
데이터 및 컬럼 상태 확인
- 데이터를 불러온 후 가장 먼저 수행해야 하는 단계
| 기능 | 코드 | 설명 |
| 상단 데이터 확인 | df.head(n) | 상위 n개 행 출력 (기본값 5) |
| 하단 데이터 확인 | df.tail(n) | 하위 n개 행 출력 |
| 요약 정보 확인 | df.info() | 인덱스, 컬럼명, 컬럼의 데이터 개수, 데이터 타입, 결측치(Non-null) 개수 확인 |
| 기술 통계량 | df.describe() | 숫자형 컬럼의 개수, 평균, 표준편차, 사분위수, 중앙값 등 확인 |
| 데이터 모양 | df.shape | (행, 열) 크기를 튜플로 반환 |
| 컬럼명 목록 | df.columns | 전체 컬럼 이름 확인 |
| 결측치 개수 | df.isnull().sum() | 각 컬럼별 비어있는 값(NaN)의 개수 확인 |
데이터 불러온 다음 꼭 확인
- 결측치 확인
df.isnull()
- 결측치 제거
df.dropna()
- 중복 데이터 확인
df.duplicated(subset=['컬럼1', '컬럼2', '컬럼3'])
- 중복 데이터 제거
df.drop_duplicates(subset=['컬럼1', '컬럼2', '컬럼3'])
- 이상치 처리
# IQR 계산
Q1 = df['컬럼1'].quantile(0.25)
Q3 = df['컬럼1'].quantile(0.75)
IQR = Q3 - Q1
# 이상치 기준 설정
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
# 이상치 제거
df[(df['컬럼1'] >= lower_bound) & (df['컬럼1'] <= upper_bound)]
- 데이터 타입 변경
DataFrame['column_name'] = DataFrame['column_name'].astype(new_dtype)
df['column_name'].astype(int)
df['column_name'].astype(float)
df['column_name'].astype(str)
df['column_name'].astype(bool)
df['column_name'].astype('category')
df['column_name'].astype('datetime64[ns]')
df['column_name'].astype(complex)
df['column_name'].astype(object)
데이터 선택 (Selection)
- 원하는 특정 행이나 열을 뽑아내는 방법
- 컬럼(열) 선택
- 1개의 컬럼 전체: 슬라이싱 활용해서 선택
data.loc[: , '컬럼명']
#또는 데이터프레임['컬럼명'] 으로도 동일한 값을 선택할 수 있습니다.
data['컬럼명']
# 여러개의 컬럼을 선택할 경우에도 리스트를 활용해서 선택
data[ ['컬럼명1', '컬럼명2', '컬럼명3' ] ]
# 여러개 컬럼을 선택할때, 내가 원하는 순서대로 데이터를 선택
data[ ['컬럼명3', '컬럼명1', '컬럼명2' ] ]
- 2개 이상의 셀 선택: 리스트 형태를 활용해서 데이터를 선택
# 2개 컬럼명을 선택할 경우
data.loc[ '행이름' , ['컬럼명1' , '컬럼명2'] ]
# 2개 행이름을 선택할 경우
data.loc[ ['행이름1', '행이름2'] , '컬럼명1' ]
# 리스트 슬라이싱 활용해서 특정 범위를 지정하여 선택
data.loc[ '행이름' , '컬럼명1' : ] # '컬럼명1' : ==> 컬럼명1부터 끝까지라는 의미
- 행(row) 및 범위 선택: loc와 iloc
- df.loc (Label-based): 이름으로 선택하기
- df.loc[0] : 인덱스 이름이 0인 행 선택
- df.loc[0:3, 'Name':'Age'] : 인덱스 0~3행, Name부터 Age 컬럼까지 (끝 점 포함)
- 행번호(로우)와 열번호(컬럼)를 통해 특정 행과 열 데이터를 선택
data.iloc[0,2]
#행과 열 번호를 통해 특정 데이터를 선택할 수 있음
# iloc을 사용하여 특정 행과 열 선택
selected_data = df.iloc[1:4, 0:2] # 인덱스 1부터 3까지의 행과 0부터 1까지의 열 선택
print(selected_data)
- df.iloc (Integer-based): 인덱스 번호로 선택하기
- df.iloc[0] : 첫 번째 행 선택
- df.iloc[0:3, 0:2] : 0~2번 행, 0~1번 열 선택 (끝 점 포함 안 함 - 파이썬 슬라이싱 규칙)
- 인덱스가 번호가 아니고 특정 문자일 경우
data.loc['행이름' , '컬럼명']
# 행이름과 컬럼명을 통해서도 특정 데이터를 선택할 수 있음
# loc을 사용하여 특정 행과 열 선택
selected_data = df.loc['b':'d', 'A':'B'] # 레이블 'b'부터 'd'까지의 행과 'A'부터 'B'까지의 열 선택
print(selected_data)
'개인공부' 카테고리의 다른 글
| 데이터 전처리 & 시각화 26.01.16(금) (0) | 2026.01.17 |
|---|---|
| [개인공부] 주말 ETL 4주차 26.01.17(토)~18(일) (0) | 2026.01.17 |
| 데이터 전처리 & 시각화 26.01.15(목) (0) | 2026.01.15 |
| [개인공부] 주말 ETL 3주차 26.01.10(토)~11(일) (1) | 2026.01.11 |
| [개인공부] 주말 ETL 1주차 25.12.27(토)~28(일) (0) | 2025.12.28 |