728x90
728x90
제1유형의 기초 학습에 이어,
이번에는 실제 문제 유형을 풀어보는 실습에 대한 내용입니다.
응용력이 중요하기 때문에, 다양한 문제를 많이 풀어보는 것이 합격하는데 가장 큰 도움이 되는 것 같습니다!

문1. 가격이 4500원 이하인 콜롬비아 커피는?
a = df['원두'] == '콜롬비아'
b = df['가격'] < 4500
df[a & b]

문2. 결측값 확인 및 컬럼별 결측치 개수는?
print( df.isnull() ) # 결측치 확인
print( df.isnull().sum() ) # 결측치 개수
메뉴 가격 할인율 칼로리 원두 이벤트가
0 False False False False False False
1 False False False False True False
2 False False False False False True
3 False False False False True False
4 False False False False False True
5 False False False False False False
6 False False False False True False
메뉴 0
가격 0
할인율 0
칼로리 0
원두 3
이벤트가 2
dtype: int64
문3. 결측치 채우기
1) 원두 결측치에 '코스타리카'로 채우기
df['원두'] = df['원두'].fillna('코스타리카') # 결측치 채우기
df

2) 이벤트가 결측치에 '최소값', 원두 결측치에 최빈값으로 채우기
df['이벤트가'] = df['이벤트가'].fillna(df['이벤트가'].min()) # 이벤트가 결측치를 최소값으로 채움
df['원두'] = df['원두'].fillna(df['원두'].mode()[0]) # 원두 결측치를 최빈값으로 채움
df

문4. 데이터 변경 (아메리카노→룽고, 녹차→그린티)
df = df.replace('아메리카노', '룽고').replace('녹차','그린티') # 리스트 데이터 변경
d = {'아메리카노':'룽고', '녹차':'그린티'} # 디렉터리 데이터 변경
df = df.replace(d)
df.loc[3, "원두"] = "과테말라" # 바닐라라떼 원두를 과테말라로 변경
df

문5. 열/행별 데이터 개수 확인
df = pd.read_csv('data.csv')
print( df.count() ) # 열별(컬럼) 데이터 개수, 결측치 제외
print( df.count(axis=1) ) # 행별 데이터 개수, 결측치 제외
print( len(df) ) # 데이터 개수
print( df.shape ) # 데이터 개수, 컬럼 수
print( df.shape[0] ) # 데이터 개수
메뉴 7
가격 7
할인율 7
칼로리 7
원두 4
이벤트가 5
dtype: int64
0 6
1 5
2 5
3 5
4 5
5 6
6 5
dtype: int64
7
(7, 6)
7
문6. 통계 분석
1) 최댓값, 중앙값, 평균, 표준편차, 왜도, 첨도
print( df['가격'].max() ) # 최댓값
print( df['가격'].median() ) # 중앙값
print( df['가격'].mean() ) # 평균
print( df['가격'].std() ) # 표준편차
print( df['가격'].skew() ) # 왜도
print( df['가격'].kurt() ) # 첨도
5100
4600.0
4657.142857142857
435.3433237386437
-0.3739900475641664
-1.7170778515694067
2) 백분위수
print( df.describe() ) # 백분위수
print( df['가격'].describe() )
print( df['가격'].quantile(0.25) ) # 하위 25% 값 (4,350원)
x = df['가격'].quantile(0.25) > df['가격'] # 하위 25% 데이터 (4,350원 이하 데이터)
print( df[x] )
가격 할인율 칼로리 이벤트가
count 7.000000 7.000000 7.000000 5.000000
mean 4657.142857 0.157143 264.285714 2600.000000
std 435.343324 0.190238 196.965068 524.404424
min 4100.000000 0.000000 10.000000 1900.000000
25% 4350.000000 0.000000 100.000000 2300.000000
50% 4600.000000 0.100000 320.000000 2600.000000
75% 5050.000000 0.250000 410.000000 3000.000000
max 5100.000000 0.500000 500.000000 3200.000000
count 7.000000
mean 4657.142857
std 435.343324
min 4100.000000
25% 4350.000000
50% 4600.000000
75% 5050.000000
max 5100.000000
Name: 가격, dtype: float64
4350.0
메뉴 가격 할인율 칼로리 원두 이벤트가
0 아메리카노 4100 0.5 10 콜롬비아 1900.0
4 녹차 4100 0.0 20 한국 NaN
3) 최빈값
df['원두'].mode()[0] # 최빈값
'콜롬비아'
4) 그룹별 평균 (원두&메뉴별 평균 가격)
df.groupby(['원두', '메뉴'])['가격'].mean() # 원두와 메뉴별 평균 가격

df.groupby(['원두', '메뉴']).mean().reset_index() # 인덱스 형태로 리셋

문7. 신규 컬럼 추가 (칼로리가 300이상이면 No, 아니면 Yes)
def cal(x):
if x >= 300:
return "No"
else:
return "Yes"
df['결과'] = df['칼로리'].apply(cal) # apply 함수
df

[빅데이터분석기사/실기] 제1유형. 판다스 기초 - 데이터 불러오기/추가/삭제/정렬, 인덱싱/슬라
빅데이터분석기사 실기 문제는 3가지 유형이 있습니다. 먼저, 제1유형은 데이터 전처리에 대한 문제이며, 총 3문제가 출제됩니다.주어진 데이터셋에 대해 결측치 처리, 이상치 제거, 컬럼 생성,
dataslog.tistory.com
728x90
728x90
'빅데이터 분석기사 > 실기 요약' 카테고리의 다른 글
| [빅데이터분석기사/실기] 제1유형. 판다스 실습 - 문자열 (0) | 2025.06.06 |
|---|---|
| [빅데이터분석기사/실기] 제1유형. 판다스 실습 - 날짜 변환 (0) | 2025.06.06 |
| [빅데이터분석기사/실기] 제1유형. 판다스 기초 - 데이터 불러오기/추가/삭제/정렬, 인덱싱/슬라이싱 (0) | 2025.05.25 |
| [빅데이터분석기사/실기] 0. 파이썬 기초 (1) | 2025.05.24 |
| [빅데이터분석기사/실기] 실기 개요 및 시험 환경 체험 (0) | 2024.11.26 |