
1.광역시별 15-29세 실업자수
행정구역_시도__연령별_실업자_20250828112631.csv


행정구역_시도__연령별_경제활동인구_20250828112622.csv
분기 고용률
| 시도 | 고용률(%) | 분기 |
|---|---|---|
| 부산광역시 | 46.7 | 2024.3/4 |
| 대구광역시 | 36.6 | 2024.3/4 |
| 인천광역시 | 49.2 | 2024.3/4 |
| 광주광역시 | 38.8 | 2024.3/4 |
| 대전광역시 | 44.2 | 2024.3/4 |
시도별 × 분기 고용률
| 시도 | 2024.3/4 | 2024/4 | 2025.1/4 | 2025.2/4 |
|---|---|---|---|---|
| 광주광역시 | 38.8 | 36.3 | 37.2 | 37.1 |
| 대구광역시 | 36.6 | 35.6 | 38.0 | 40.7 |
| 대전광역시 | 44.2 | 42.8 | 44.6 | 46.0 |
| 부산광역시 | 46.7 | 46.0 | 43.8 | 44.0 |
| 울산광역시 | 40.8 | 41.0 | 41.5 | 43.7 |
| 인천광역시 | 49.2 | 48.0 | 46.0 | 45.1 |
import pandas as pd
import re
# 1) 서울 제외 광역시 조건 (부산/대구/인천/광주/대전/울산)
metros_no_seoul = ["부산광역시","대구광역시","인천광역시","광주광역시","대전광역시","울산광역시"]
# 2) df3에서 조건 필터 (df3가 이미 15-29세만 담고 있지 않을 수도 있으니 안전하게 한 번 더 체크)
mask_city = df3["시도별"].isin(metros_no_seoul)
mask_age = df3["연령계층별"].eq("15 - 29세") if "연령계층별" in df3.columns else True
sub = df3.loc[mask_city & mask_age].copy()
# 3) '고용률(%)' 컬럼만 자동 선택
# - 패턴 예: 2024.3/4(총인구), 2024.3/4.1(경제활동인구), 2024.3/4.2(비경제활동인구),
# 2024.3/4.3(경제활동참가율), 2024.3/4.4(고용률)
# - 따라서 고용률은 ".4"로 끝나는 컬럼들
emp_rate_cols = [c for c in sub.columns if re.match(r"^\\d{4}\\.\\d/4\\.4$", c)]
# 4) long 형태 (시각화/가공에 편리)
emp_long = (
sub[["시도별"] + emp_rate_cols]
.melt(id_vars="시도별", var_name="분기_raw", value_name="고용률(%)")
)
# 숫자 변환 + 분기 라벨 정리(뒤의 ".4" 제거)
emp_long["고용률(%)"] = pd.to_numeric(emp_long["고용률(%)"], errors="coerce")
emp_long["분기"] = emp_long["분기_raw"].str.replace(".4", "", regex=False)
emp_long = emp_long.drop(columns=["분기_raw"])
# 5) pivot 형태 (광역시 × 분기 표)
emp_pivot = emp_long.pivot(index="시도별", columns="분기", values="고용률(%)")
# 확인
print(emp_long.head()) # long 미리보기 (시도별, 분기, 고용률)
print(emp_pivot) # pivot 표 (시도별 × 분기 고용률)
KOSIS 실업률 지도 시각화 직접 진행
※참고 CSV 파일 :
행정구역_시도__연령별_경제활동인구_20250828112622.csv