빅데이터 분석기사/실기 요약

[빅데이터분석기사/실기] 제1유형. 판다스 실습 - 조건필터, 결측치 처리, 통계분석, 데이터 개수확인

✨️데이터분석가✨️ 2025. 5. 26. 07:37
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