-
혼자 공부하는 데이터 분석 CH 01 데이터 분석Study/Data Analysis 2025. 9. 21. 17:06

목차
- 데이터 분석가와 데이터 과학자, 무엇이 다를까요?
- 실전 데이터 분석: 공공 도서 대출 목록 전처리 과정
- 마치며
1. 데이터 분석가와 데이터 과학자, 무엇이 다를까요?
최근 몇 년간 '데이터'의 중요성이 부각되면서 '데이터 분석가'와 '데이터 과학자'라는 직업이 큰 주목을 받고 있습니다.
두 직무 모두 데이터를 다루지만, 요구되는 역량과 수행하는 역할에는 미묘한 차이가 있습니다.
오늘 이 두 가지 개념을 명확히 정리하고, 실제 데이터 전처리 과정을 함께 살펴보겠습니다.
1-1. 데이터 분석가, 어떤 역량이 필요할까?

데이터 분석가는 데이터를 기반으로 현상을 이해하고, 문제를 진단하며, 실질적인 비즈니스 의사결정에 도움을 주는 역할을 합니다.
이를 위해서는 아래의 세 가지 핵심 역량이 조화를 이루어야 합니다.
- 프로그래밍 기술 (Programming Skills):
주로 파이썬, R, SQL 등을 사용하여 데이터를 추출하고 조작하며 시각화하는 능력이 필요합니다. - 수학 · 통계 지식 (Math · Statistics Knowledge):
데이터의 패턴을 이해하고, 가설을 검증하며, 통계적 모델링을 통해 인사이트를 도출하는 데 필수적입니다. - 도메인 지식 (Domain Expertise):
분석하려는 특정 산업이나 분야에 대한 깊이 있는 이해가 있어야 데이터의 맥락을 정확히 파악하고 유의미한 해석을 할 수 있습니다.
이 세 가지 역량의 교집합이 바로 데이터 분석의 핵심 영역이라고 할 수 있습니다.
또한, 데이터 분석은 기술 통계, 탐색적 데이터 분석(EDA), 가설 검증 등 비교적 좁은 범위의 분석부터,
데이터 수집, 데이터 처리, 데이터 정제, 모델링 등 넓은 범위의 전 과정을 아우르는 개념으로도 사용됩니다.
1-2. 데이터 분석과 데이터 과학, 어떤 관계일까요?

흔히 데이터 과학은 데이터 분석보다 더 광범위하고
예측 모델 구축, 머신러닝 적용 등 고급 분석 기술을 포함하는 개념으로 이해됩니다.
- 데이터 과학 (Data Science):
통계학, 머신러닝, 데이터 마이닝 등 다양한 학문과 기술이 융합된 분야입니다. 복잡한 데이터를 바탕으로 예측 모델을 개발하고, 새로운 인사이트를 발굴하여 미래를 예측하는 데 중점을 둡니다. 데이터 수집부터 정제, 모델링, 배포까지 전반적인 과정을 다룹니다. - 데이터 마이닝 (Data Mining):
대규모 데이터에서 유의미한 패턴, 규칙, 관계를 발견하는 과정입니다. 데이터 과학의 중요한 한 부분이죠. - 머신러닝 (Machine Learning):
데이터를 기반으로 컴퓨터가 스스로 학습하게 하여 패턴을 찾고 예측하는 인공지능의 한 분야입니다. 데이터 과학자가 예측 모델을 만들 때 핵심적으로 활용하는 기술입니다.
결론적으로, 데이터 과학은 데이터 분석을 포함하며, 통계학, 머신러닝, 데이터 마이닝 등
여러 분야의 지식을 활용하여 복잡한 문제를 해결하고 미래를 예측하는 데 더 깊이 관여합니다.
2. 실전 데이터 분석: 공공 도서 대출 목록 전처리 과정
이제 이론적인 배경을 이해했으니, 실제로 공공데이터를 활용하여 데이터 분석의 첫 단계를 경험해 보겠습니다.
이 과정은 파이썬으로 CSV 파일을 불러와 데이터프레임으로 다루고, 분석을 위해 저장하는 전반적인 전처리 과정을 보여줍니다.
2-1. 데이터 준비: 파일 다운로드 및 인코딩 처리
데이터 분석의 첫 번째 난관은 언제나 '원본 데이터 불러오기'입니다.
특히 웹에서 데이터를 다운로드하고, 한글 데이터에서 자주 발생하는 인코딩(Encoding) 문제를 해결하는 방법을 알아봅시다.
핵심 개념 1: 웹에서 데이터 파일 다운로드하기
URL을 통해 제공되는 공공 데이터를 직접 코랩(Colab)이나 로컬 환경으로 다운로드하는 과정입니다.
gdown 라이브러리를 사용하면 구글 드라이브나 특정 URL의 파일을 쉽게 받을 수 있습니다.
import gdown # 예시: 남산도서관 장서 대출목록 (2021년 04월).csv 파일 다운로드 gdown.download('https://bit.ly/3eecMKZ', '남산도서관 장서 대출목록 (2021년 04월).csv', quiet=False)핵심 개념 2: 파일 인코딩(Encoding) 문제 해결
파이썬은 기본적으로 파일을 'UTF-8' 형식으로 읽으려 합니다.
하지만 공공데이터 중에는 'EUC-KR'이나 'CP949' 같은 다른 인코딩 방식으로 저장된 한글 파일이 많습니다.
이때 인코딩 형식이 맞지 않으면 UnicodeDecodeError가 발생하죠.
문제 발생 예시:
# 'utf-8'로 읽으려다 에러 발생 with open('남산도서관 장서 대출목록 (2021년 04월).csv') as f: print(f.readline()) # UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 0: invalid start byte원인 진단: chardet 라이브러리로 인코딩 확인
chardet 라이브러리는 파일의 인코딩 형식을 자동으로 감지해 줍니다.
파일을 이진(binary) 모드인 'rb'로 열어서 내용을 읽어야 chardet이 제대로 작동합니다.
import chardet with open('남산도서관 장서 대출목록 (2021년 04월).csv', mode='rb') as f: d = f.readline() print(chardet.detect(d)) # 출력: {'encoding': 'EUC-KR', 'confidence': 0.99, ...}위 결과에서 encoding': 'EUC-KR'을 통해 파일이 EUC-KR로 인코딩되어 있음을 알 수 있습니다.
문제 해결: 정확한 인코딩 지정
이제 euc-kr이라는 인코딩 형식을 open() 함수의 encoding 파라미터에 지정하여 파일을 성공적으로 읽을 수 있습니다.
with open('남산도서관 장서 대출목록 (2021년 04월).csv', encoding='euc-kr') as f: print(f.readline()) # 출력: 한글이 정상적으로 출력됩니다.2-2. 데이터 로딩 및 가공: Pandas DataFrame 활용
CSV 파일처럼 깔끔하게 정리된 정형 데이터(Structured Data)는 Pandas 라이브러리의 데이터프레임(DataFrame)을 사용하면 아주 효율적으로 다룰 수 있습니다. 데이터프레임은 엑셀 시트처럼 2차원 표 형태로 데이터를 관리하게 해줍니다.
핵심 개념 1: CSV 파일을 DataFrame으로 불러오기
pandas.read_csv() 함수를 사용하면 CSV 파일을 데이터프레임 객체로 쉽게 불러올 수 있습니다.
이때 인코딩 문제를 해결했던 것처럼 encoding 파라미터를 정확히 지정하는 것이 중요합니다.
import pandas as pd # 'euc-kr' 인코딩을 적용하여 CSV 파일을 DataFrame으로 로딩 df = pd.read_csv('남산도서관 장서 대출목록 (2021년 04월).csv', encoding='euc-kr')핵심 개념 2: 데이터 타입 경고(DtypeWarning) 처리
read_csv() 실행 시 때때로 DtypeWarning이라는 경고 메시지가 나타날 수 있습니다.
이는 특정 열에 숫자와 문자 같은 여러 데이터 타입이 섞여 있을 때 Pandas가 타입을 추론하기 어렵다고 알려주는 메시지입니다.
이 경고는 low_memory=False 옵션을 추가하여 파일을 한 번에 모두 읽게 하거나,
dtype 옵션으로 해당 열의 데이터 타입을 명시적으로 지정하여 해결할 수 있습니다.
# low_memory=False 옵션으로 경고 메시지 없이 파일을 한 번에 모두 읽어옴 df = pd.read_csv('남산도서관 장서 대출목록 (2021년 04월).csv', encoding='euc-kr', low_memory=False) # 또는, 경고가 발생한 열의 타입을 문자열(str)로 지정 (예시) df = pd.read_csv('남산도서관 장서 대출목록 (2021년 04월).csv', encoding='euc-kr', dtype={'ISBN': str, '세트 ISBN': str, '주제분류번호': str})핵심 개념 3: 데이터프레임 내용 확인하기
데이터가 제대로 불러와졌는지 확인하는 가장 빠른 방법은 head() 메서드를 사용하는 것입니다.
데이터프레임의 첫 5개 행을 보여주어 데이터의 전체적인 구성을 파악하는 데 도움을 줍니다.
df.head()를 실행하면 다음과 유사한 결과가 출력될 것입니다 (실제 데이터 내용에 따라 다름)
df.head()번호 도서명 저자 출판사 발행년도 ISBN 세트 ISBN 자료코드 ... 0 곤충 곰 비룡소 2000 894911223X nan EM ... 1 꽃 이야기 김 웅진 1998 8901001234 nan EM ... 2 ... ... ... ... ... ... ... ... 2-3. 데이터 저장: CSV 및 Excel 파일로 저장하기
전처리나 분석 작업을 마친 데이터프레임은 나중에 다시 사용할 수 있도록 파일로 저장하는 것이 일반적입니다.
핵심 개념: DataFrame을 파일로 저장하기
Pandas는 to_csv()나 to_excel() 같은 편리한 메서드를 제공하여 데이터프레임을 다양한 파일 형식으로 저장할 수 있게 합니다.
이때 index=False 옵션을 주면 데이터프레임의 내부 인덱스(0, 1, 2, ...)가 불필요하게 파일에 저장되는 것을 방지할 수 있습니다.
CSV 파일로 저장:
# index=False 옵션으로 데이터프레임 인덱스 열을 제외하고 저장 df.to_csv('ns_202104.csv', index=False)Excel 파일로 저장 (추가 라이브러리 필요):
Excel 파일로 저장하려면 xlsxwriter 라이브러리 설치가 필요할 수 있습니다.
# 1. Excel 엔진 라이브러리 설치 (코랩에서는 !pip 사용) !pip install xlsxwriter # 2. Excel 파일로 저장 (index=False 옵션 적용) df.to_excel('ns_202104.xlsx', index=False, engine='xlsxwriter')
3. 마치며
오늘은 데이터 분석가와 데이터 과학자의 개념을 명확히 하고,
실제 공공 도서 대출 데이터를 파이썬으로 불러와 전처리하는 과정을 상세히 살펴보았습니다.
gdown으로 파일을 다운로드하고, chardet으로 인코딩 문제를 해결하며,
Pandas로 데이터를 읽고 저장하는 일련의 과정은 모든 데이터 프로젝트의 기본 중 기본입니다.
이 기초적인 전처리 과정 없이는 어떤 고급 분석이나 머신러닝 모델도 제대로 작동할 수 없습니다.
여러분의 데이터 분석 여정에 이 포스팅이 튼튼한 첫걸음이 되기를 바랍니다!
코드 출처:
https://github.com/rickiepark/hg-da
GitHub - rickiepark/hg-da: <혼자 공부하는 데이터 분석 with 파이썬>의 코드 저장소
<혼자 공부하는 데이터 분석 with 파이썬>의 코드 저장소. Contribute to rickiepark/hg-da development by creating an account on GitHub.
github.com
이미지 출처:
https://www.youtube.com/watch?v=qGE_rT_oQaQ&list=PLVsNizTWUw7FGzSRCkQrPEEe-ljVXgS7k
'Study > Data Analysis' 카테고리의 다른 글
혼자 공부하는 데이터 분석 CH 06 복잡한 데이터 표현하기 (0) 2025.09.26 혼자 공부하는 데이터 분석 CH 05 데이터 시각화 (3) 2025.09.25 혼자 공부하는 데이터 분석 CH 04 통계와 분포 (0) 2025.09.24 혼자 공부하는 데이터 분석 CH 03 데이터 클렌징 (1) 2025.09.23 혼자 공부하는 데이터 분석 CH 02 웹 스크래핑 (0) 2025.09.22