오늘은 데이터 전처리와 시각화 하는 방법에 대해 배워봤습니다.
새로운 교수님께서 수업을 맡으시게 되어, 오늘은 이전에 배웠던 내용을 다시 한번 짚고 넘어가는 시간이었던 것 같습니다.
대괄호를 활용한 데이터 부분 선택
- dataframe에 대괄호를 붙이고 슬라이스로 관측지 번호를 지정하거나 따옴표로 변수 이름을 넣어 데이터 부분을 선택 가능합니다.
1 .단일 열(컬럼) 선택
- df["열이름"]
2. 여러 열 선택(리스트)
- df[["열1", "열2", "열3"]]
3. 행 조건으로 부분 선택
- df[df["수학"] >= 80]
4. 행 번호로 슬라이싱
- df[1:4]
loc과 iloc을 활용한 관측치/변수 선택
loc은 행 이름(index)과 열 이름(column)으로 데이터에서 일부를 선택하고, iloc은 정수(integer) 형식의 행 번호, 열 번호를 활용
두 방법 모두 리스트[ ]나 슬라이스:를 활용한 방법을 지원
loc[ ]
☞ 행만 선택
df.loc["홍길동"] # 행 이름(인덱스 라벨)으로 선택
☞ 행과 열 모두 선택
df.loc["홍길동", "영어"] # "홍길동" 학생의 영어 점수
☞ 여러 행, 여러 열 선택
df.loc[["홍길동", "김영희"], ["영어", "수학"]]
iloc[ ]
☞ 행만 선택
df.iloc[0] # 첫 번째 행 선택
☞ 행과 열 모두 선택
df.iloc[0, 2] # 첫 번째 행의 세 번째 열
☞ 여러 행과 열
df.iloc[0:2, 1:3] # 0~1행, 1~2열 선택 (끝 제외!)
실습 1
이번 실습에서는 pandas 사용해 df_subway라는 dataframe을 생성하고 데이터 구조의를 살펴본 뒤 일부 행과 열을 선택하는 방법을 익혀보았습니다.
import pandas as pd
# 1. 아래의 명령어를 실행해서 df_subway 데이터 생성하기
pf_subway = pd.read_csv("파일 위치/CARD_SUBWAY_MONTH_201907.csv"),encoding ='cp949')
# 2.columns 변수(속성)를 활용해서 변수이름 확인하기
df_subway.clomns
# 3. 슬라이스를 활용하여 11~15번째 관측치(행) 선택하기
df_subway.iloc[10:15]
# 4. '사용일자', '역명', '하차총승객수' 세 변수(열) 선택하기
df_subway.loc[:,['사용일자','역명','하차총승객수']]
# 5. 노선명이 "1호선"인 관측치(행) 선택하기
df_subway['노선명'].unique()
cond = df_subway['노선명'] == '1호선'
df_subway.loc[cond]
1.isin() - 다중 조건 필터링
- 특정 열에서 여러 값 중 하나라도 포함된 행만 선택할 때 사용
- ==를 여러 번 쓰지 않고 한 줄로 표현 가능
df[df["열이름"].isin([값1, 값2, 값3])]
예시
df[df["노선명"].isin(["1호선", "2호선"])]
연관 함수
- ~ (부정): ~df["노선명"].isin(["1호선", "2호선"]) → 제외 조건
- any(), all()과 조합하여 조건 더 확장 가능
2. groupby() – 그룹별 집계 분석
- 특정 열의 값에 따라 데이터를 **그룹화(grouping)**하여 통계 처리할 수 있음
df.groupby("열이름")
예시
df.groupby("노선명")["승차총승객수"].sum()
df.groupby(["노선명", "역명"])["하차총승객수"].mean()
df.groupby("race/ethnicity", as_index=False)['writing score'].mean()
- groupby("race/ethnicity", as_index=False)
→ 'race/ethnicity' 기준으로 그룹화 - ['writing score']
→ 그룹화한 데이터에서 'writing score' 열만 선택 - .mean()
→ 각 그룹의 'writing score' 평균을 계산
연관 함수
- .agg(): 여러 집계함수 한꺼번에 적용 가능
예: df.groupby("노선명").agg(["sum", "mean"])
3.axis
axis 의미 방향
| 0 | 열 기준 계산 (세로 방향) | 위 → 아래 |
| 1 | 행 기준 계산 (가로 방향) | 왼쪽 → 오른쪽 |
df.sum(axis=0) # 각 열의 합계
df.sum(axis=1) # 각 행의 합계
4. .nlargest( n, column ) , .nsmallest( n, column )
.nlargest( n, column ) - 특정 열에서 값이 큰 순서대로 n개 추출
.nsmallest( n, column ) - 특정 열에서 값이 작은 순서대로 n개 추출
오늘은 새로운 교수님이 판다스 데이터 분석에 대한 내용을 다뤘기에 전에 배웠던 내용을 복기하면서 수업을 하였기에
이해가 그래도 잘 되었던 것 같습니다.

'ABC부트캠프' 카테고리의 다른 글
| [11일차]ABC부트캠프 (3) | 2025.07.20 |
|---|---|
| [10일차] ABC 부트캠프 - ESG포럼&세미나 (4) | 2025.07.13 |
| [7일차] ABC부트캠프 (3) | 2025.07.13 |
| [6일차]ABC부트캠프 (0) | 2025.07.13 |
| [5일차]ABC부트캠프_ ESG-day! (0) | 2025.07.06 |