Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 빅분기 판다스 100제
- 오늘은 1일 2쿼리
- 빅분기 필기 pdf
- FLUTTER
- 비동기 처리
- my_sql
- 빅분기 캐글놀이터
- 컴포지션과 집합
- 빅데이터 분석기사
- 빅데이터분석기사
- null safety
- rdbms nosql 차이
- mysql mongo 성능 비교
- 앱개발 가보자고
- 주말에도 1일 1쿼리
- null check 연산자
- 주말도 식지않아
- 작업 1유형
- null 병합 연산자
- MySQL
- ?. ?? ! late
- 주말도 한다
- null 억제 연산자
- 1일 1쿼리
- flutter 믹스인
- 빅분기
- 빅분기 필기
- late 키워드
- SQL
- 빅분기 1유형
Archives
- Today
- Total
subindev 님의 블로그
[실기] 빅데이터 분석기사 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제 중 헷갈리는 문제 복습 및 정리
'데이터 관련 > 빅데이터 분석기사' 카테고리의 다른 글
[실기] 빅데이터 분석기사 작업 1유형(35문제) (1) | 2025.06.24 |
---|---|
[자격증] 빅데이터 분석기사 필기 요약정리(pdf 파일 첨부) (1) | 2025.06.14 |