01 데이터 입수 — AI 수용도조사 원자료(n=2,297)¶
자료. 한국고용정보원 「AI 수용도가 고용변화에 미치는 영향」 사업체 조사(2025년 수행, 2,297개 사업체, 제조 9개·비제조 12개 업종). 원자료에는 사업체명·법인등록번호 같은 식별 정보가 있으므로, 분석에 필요한 13개 열(업종 코드, AI 기술유형 도입 표시 3개, D2 AI 중요도, E4-1·E5-1 4시점)만 읽는다.
| 문항 | 내용 | 척도 |
|---|---|---|
| A1-1) KSIC | 사업체의 한국표준산업분류 코드 | 코드 |
| B 기술유형 01–03 | 자동화 시스템·예측형 AI·생성형 AI 도입 표시 | 표시 여부 |
| D2 (1) | 우리 경제의 성장·고용 변동 요인 8개(AI·인구구조·산업구조 등) 중 AI의 중요도 | 합 100이 되는 % |
| E4-1 | 업종 성장(매출 규모)에 AI가 미치는 영향의 정도, 2025·2029·2034·2040년 | 9점(①매우 낮음 ⑤보통 ⑨매우 높음) |
| E5-1 | 업종 고용에 AI가 미치는 영향의 정도, 같은 시점 | 같은 척도 |
원자료와 통계표가 없으면 이 노트북에서 멈춘다. 두 파일은 공개 묶음에 넣지 않는다.
In [1]:
import os
import numpy as np, pandas as pd
import config as C
import survey_raw as R
pd.set_option("display.float_format", lambda v: f"{v:,.2f}")
C.setup()
Python 3.12.10 · pandas 2.2.3 · numpy 2.4.6 원자료(비공개) 있음 data\private\AI수용도조사_원자료_n2297.xlsx 통계표(비공개) 있음 data\private\AI수용도조사_통계표_260417.xlsx
In [2]:
if not os.path.exists(C.RAW_XLSX):
raise FileNotFoundError("비공개 원자료가 없다: data/private/AI수용도조사_원자료_n2297.xlsx 를 넣은 뒤 다시 실행한다.")
raw = R.read_raw(C.RAW_XLSX)
raw.to_pickle(os.path.join(C.INTERIM, "raw_slim.pkl"))
print(f"응답 사업체: {len(raw):,} · 열: {list(raw.columns)}")
(비공개 설문 집계를 보여주는 셀이다. 공개 화면에서는 출력을 생략했다. 자료를 가진 경우 직접 실행하면 표시된다.)
통계표와의 정합성¶
원자료로 다시 계산한 E4-1 전체 평균이 공표 통계표(E4-1 '전 체' 행)와 같아야 한다.
In [3]:
import openpyxl
ws = openpyxl.load_workbook(C.STAT_XLSX, data_only=True)["통계표"]
row = next(r for r in range(1, ws.max_row + 1) if isinstance(ws.cell(r, 1).value, str) and "E4-1." in ws.cell(r, 1).value) + 2
tab = [ws.cell(row, c).value for c in range(6, 10)]
mine = [raw[f"E41_{y}"].mean() for y in (2025, 2029, 2034, 2040)]
chk = pd.DataFrame({"통계표": tab, "원자료 재계산": mine}, index=[2025, 2029, 2034, 2040])
display(chk)
assert np.allclose(chk["통계표"], chk["원자료 재계산"], atol=1e-6), "원자료와 통계표의 E4-1 평균이 다르다"
print("원자료와 통계표가 일치한다.")
(비공개 설문 집계를 보여주는 셀이다. 공개 화면에서는 출력을 생략했다. 자료를 가진 경우 직접 실행하면 표시된다.)