일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- late 키워드
- 컴포지션과 집합
- 주말에도 1일 1쿼리
- 1일 1쿼리
- MySQL
- 빅분기 필기
- 주말도 한다
- 빅분기
- SQL
- FLUTTER
- null check 연산자
- flutter 믹스인
- 오늘은 1일 2쿼리
- 작업 1유형
- rdbms nosql 차이
- 앱개발 가보자고
- 빅분기 판다스 100제
- my_sql
- 빅분기 필기 pdf
- 모델 학습 및 예측
- 빅데이터 분석기사
- 주말도 식지않아
- sqld 시험 정리
- ?. ?? ! late
- mysql mongo 성능 비교
- 빅분기 1유형
- 작업 2유형
- null 억제 연산자
- 빅분기 캐글놀이터
- null safety
- Today
- Total
subindev 님의 블로그
[실기] 빅데이터 분석기사 python - pandas 100제 문제 본문
2025/06/21 시행한 시험 합격했어요!
일단 저는 컴퓨터 공학을 전공했고 데이터에 아예 무지한 상태는 아니였어요.
웹 개발 프로젝트 중 사용자 로그를 수집하여 분석하는 과제를 맡았었는데
그 때 빅데이터에 대한 관심이 생겨서 취득하게 되었습니다 : )
코테를 준비중이라 파이썬은 어느정도 익숙한 상태에서 시작하였고 실기 공부는 2주 정도 한 것 같습니다.
저는 2유형 제일 먼저 공부하시고 3유형 후 1유형을 하는 것을 추천 드리고 싶어요.
3유형은 아직 기출이 많이 없어 기출 위주로 핵심 내용만 익히고 갔는데 실수로 한문제 틀렸지만 다 풀 수 있겠더라구요!
또, 제 1유형은 python을 원래도 쓰실 수 있으시다면 크게 어려울 것 같지 않아요
help 와 dir을 이용하여서 기억 안나는 함수도 사용할 수 있기에 너무 걱정 안하셔도 될 거 같아요!
pandas 100제 문제 푸는 것이 python와 pandas를 처음 익히고 익숙해 지기에 너무 좋은 거 같아요
그치만 시험 대비로 생각한다면 약간 난이도가 있는거 같아서
다 완벽하게 풀지 못하여도 이런 함수가 있구나 정도만 익히시고 넘어가도 괜찮을 거 같습니다!
다들 화이팅입니다 :)
판다스 100제 헷갈리던 문제 복기
출처: 유튜브 - 데이터 분석 캠퍼스
46번: .apply(lambda x:) + re 정규표현식
숫자 0~3을 *로 마스킹하기
import pandas as pd
import re
emp = pd.read_csv("content/emp.csv")
# sal 컬럼의 숫자 0~3을 *로 대체
emp['sal_star'] = emp.sal.astype(str).apply(lambda x: re.sub('[0-3]', '*', x))
emp[['ename','sal_star']]
73번: pd.qcut 으로 등급 나누기
나이를 5등급으로 나누어 ‘등급’ 컬럼 만들기
emp20 = pd.read_csv("content/emp20.csv", encoding="euckr")
# 나이 기준으로 내림차순 순위 매기기
emp20['순위'] = emp20['age'].rank(method="dense", ascending=False).astype(int)
# 5등급으로 등급 나누기
emp20['등급'] = pd.qcut(emp20.순위, q=5, labels=range(1, 6))
emp20[['ename','age','등급']].sort_values(by='등급')
75번: 결측치 처리 후 rank
Age 결측치를 평균으로 채우고 나이순 순위 부여
tit = pd.read_csv('content/train.csv')
# Age 결측치 평균으로 대체
tit['Age'] = tit['Age'].fillna(tit['Age'].mean())
# Age 기준 내림차순 순위
tit['순위'] = tit['Age'].rank(ascending=False).astype(int)
tit[['Age','순위']].sort_values(by='순위')
78번: shift(-1) 로 이전 행 출력
이름, 입사일, 다음 행의 입사일(shift 사용)
emp = pd.read_csv("content/emp.csv")
# 다음 행의 hiredate 값을 가져오기
emp['lag_hiredate'] = emp['hiredate'].shift(-1).fillna('x')
emp[['ename','hiredate','lag_hiredate']]
80번: pivot_table 로 집계
직업 + 부서번호 기준 월급 합계 피벗
emp = pd.read_csv("content/emp.csv")
# 직업별, 부서별 월급 합계 출력
emp.pivot_table(columns='deptno', index='job', values='sal', aggfunc='sum')
82번: 피벗 테이블에서 aggfunc='count'
주소 앞 3자리로 인원수 카운트 (가로 형태)
emp = pd.read_csv("content/emp20.csv", encoding="euckr")
# 주소 앞 3자리 추출
emp['address_front_3'] = emp.address.str.slice(0, 3)
# 주소 앞 3자리별 인원 수 계산
emp.pivot_table(columns='address_front_3', values='empno', aggfunc='count')
96번: intersect & minus
두 데이터프레임의 차집합 구하기
emp = pd.read_csv("content/emp.csv")
emp_old_backup = pd.read_csv("content/emp_old_backup.csv")
x1 = emp[['ename','sal','deptno']]
x2 = emp_old_backup[['ename','sal','deptno']]
# x1에만 있고 x2에는 없는 데이터 출력 (차집합)
x1[~x1.ename.isin(x2.ename)]
100번: 사라진 편의점 수
2017년에는 있었지만 2022년에 없는 편의점 수 구하기
# 조건에 맞는 편의점만 필터링
x1 = market_2017[market_2017['상권업종소분류명'] == '편의점'][['상가업소번호']]
x2 = market_2022[market_2022['상권업종소분류명'] == '편의점'][['상가업소번호']]
# x1에는 있고 x2에는 없는 상가업소번호만 필터링
x3 = x1[~x1.상가업소번호.isin(x2.상가업소번호)]
# 사라진 편의점 수
x3[['상가업소번호']].count()
100제 중 헷갈리는 문제 복습 및 정리
'데이터 관련 > 빅데이터 분석기사' 카테고리의 다른 글
[실기] 빅데이터 분석기사 작업 3유형 (4) | 2025.07.11 |
---|---|
[실기] 빅데이터 분석기사 작업 2유형(6문제) (2) | 2025.07.09 |
[실기] 빅데이터 분석기사 작업 1유형(35문제) (1) | 2025.06.24 |
[필기] 빅데이터 분석기사 필기 요약정리(pdf 파일 첨부) (1) | 2025.06.14 |