2025년에도 모두들 새해 복 많이 받으세요 :)
데이터분석을 기존에도 공부를 많이 해왔었으나, 뭔가 코딩이 늘지 않는 정체기를 만났다.
그래서 여러사람과 공유하고 생각을 나누면 좋을 것 같아 신청하게 된 혼공단 13기.
요즘은 생성형 AI가 잘 되어있어 코딩공부에 많은 도움을 받을 수도 있지만 뭔가.. 점점 디버깅부터 문제가 생기면
고민보단 바로 코드를 긁어서 해결해버리는 습관이 들게 되는 것 같다.
그래서 나는 개발 환경을 '주피터 노트북'으로 한번 공부를 시작 해보고자 한다.
(아직 주피터노트북은 AI가 탑재되지 않았기 때문에, 오류나면 직접 고민하고 생각할 수 있어서 공부할땐 좋은 것 같다.)
1. 개발환경 구축_가상환경 설치 및 주피터 노트북(Jupyter Notebook)
개발환경은 요즘 다양하게 존재한다. VS, 구글 코랩, 아나콘다 등 여러 환경이 있는데. 나는 주피터 노트북으로 내장 venv를 활용하여 가상환경으로 준비해보고자 한다.
- 가상환경
파이썬의 장점 중 하나인 다양한 라이브러리를 100% 활용하기 위해서는 여러가지 파이썬 버전을 사용할 줄 알아야한다. 보통 라이브러리는 파이썬 버전이 올라가면서 업데이트가 되기는 하지만, 어떤 라이브러리는 그렇지 않아 간혹 버전 문제가 발생하여 곤혹을 치루기도 한다.
( 필자는 대학 시험 데이터 분석 시험중 버전이 달라 구동이 안되서 결국 점수를 까인 경험이 있다. )
보통 데이터분석에는 conda를 활용하긴 하지만, 우리는 교재정도의 내용을 공부하기에 내장된 venv정도면 충분하다. 필자는 macOS를 사용하므로 이에 맞게 기록하려고 한다.
(1) 가상환경 설치
일단 가상환경을 설치 하기 위해서 터미널에 접속하여 설치하고자 하는 폴더로 이동한다.
>> cd "경로"
경로로 이동했다면, 이용하고자 하는 파이썬 버전의 pip로 가상환경을 생성하자.
>> python -m venv (가상환경 폴더명)
해당 코드를 실행 한 후 폴더를 살펴보면 우리가 입력한 폴더명으로 가상환경이 생성 되어있는 것을 확인 할 수 있다,
(여기서 필자는 3.13으로 가상환경을 설치했다.)
생성된 가상환경을 실행은 다음 명령어를 통해 실행하면 된다,
>> cd (가상환경폴더명)/bin/activate
(2) 주피터 노트북 설치 및 실행
가상환경을 성공적으로 실행했다면, 주피터 노트북을 사용하기 위해 이를 설치해야하는데 파이썬의 pip를 사용하면 간편하게 설치가 가능
하다.
>> pip install jupyter
해당 명령어를 터미널에 입력하면 설치가 될텐데, 이후 주피터노트북을 실행하려면 터미널 창에 'jupyter notebook'만 치면 자동으로
실행이 된다. 만약 실행이 되지 않는다면, 터미널에 출력된 HTML 링크를 브라우저에 입력하면 접속이 가능하다.
2. 교재내용 요약
(1) 데이터분석이란?
데이터분석이란 현대 사회에서 "비즈니스 의사결정을 위한 도구"로써, 의사결정에 필요한 인사이트(통찰)을 얻어내기 위한 방법이라고 이해하기 쉽다.
데이터분석과 비슷하지만 자주 언급되는 "데이터과학(Data Science)"도 있다. 대부분 데이터분석과 데이터과학을 일반적으로는 동일시 하기도 한다. 그러나 데이터과학은 넓은 범위에서 통계(statistics), 데이터분석(data analysis), 머신러닝(machine learning), 데이터마이닝(data mining)을 모두 아우르는 개념이다. 즉, 데이터분석은 데이터과학의 부분집합이라는 것. 교재에서는 다음과 같이 구분한다.
특징 | 데이터분석(Data Analysis) | 데이터과학(Data Science) |
범주 | 상대적으로 소규모 | 대규모 |
목표 | 의사 결정을 위한 통찰(인사이트) 제공 | 문제 해결을 위한 최선의 솔루션을 만드는 것 |
주요 기술 | 컴퓨터 과학, 통계학, 시각화 등 | 컴퓨터 과학, 통계학, 머신러닝, 인공지능 등 |
빅데이터 | 사용 | 사용 |
그렇다면, 데이터 분석가가 되기위한 역량은 무엇이 필요한가?
이는 드류 콘웨이의 "데이터 과학 벤 다이어그램"을 기반으로 하면, 기본적으로 다음과 같다.

이러한 기술역량을 토대로 데이터 분석가는 넓게는 데이터의 수집부터 전처리, 모델링, 기술통계와 가설검정 등 전반적인 작업을, 좁게 보면 기술통계와 가설검정의 작업을 수행한다.

(2) 데이터분석의 언어와 파이썬 라이브러리
데이터분석을 하기위해선 가장 우선적으로 분석 도구를 사용할 줄 알아야 한다. 데이터 분석의 대표적인 도구는 엑셀, SPSS, 파이썬, R, SQL 등이 있는데, 교재에서는 주로 파이썬을 통해 데이터 분석을 진행한다.
주로 데이터 분석을 파이썬으로 많이 하는데, 이는 파이썬만의 장점인 '라이브러리' 때문이다. 파이썬에서 지원하는 라이브러리는 데이터 전처리에 용이한 데이터프레임부터, 머신러닝까지 모두 지원하고 있다. 다만, 파이썬의 경우 처리속도가 다른 언어에 비해 매우 느리다는 단점은 있다. 그럼에도 속도를 감수하고서라도 충분히 활용성이 뛰어나다.
+ 필자의 첨언_파이썬의 특징 "파이쏘닉(Pythonic)한 코드"
필자는 학부수업으로 데이터분석을 수강하면서 배운 것이 있는데, 바로 파이썬의 장점인 "파이쏘닉 함" 이다. Pythonic. 말그대로 파이썬의 이름에서 온 건데, 이를 쉽게 풀어서 이야기 해보면 타 프로그래밍 언어에서 여러줄에 걸쳐 복잡하게 쓰는 것을, 파이썬에서는 비교적 짧은 줄과 단순하고 가독성이 좋은 코드로 표현 할 수 있다는 말이다. 예시를 들어보면 다음과 같다.
[타 프로그래밍 언어]
result = []
for i in range(10):
if i % 2 == 0:
result.append(i)
print(result)
[파이썬 코드]
result = [i for i in range(10) if i % 2 == 0]
print(result)
위 코드는 리스트의 숫자에서 짝수만 골라서 출력하는 코드이다. 예제가 비교적 단순하여 큰 체감을 못하겠지만, 만약 데이터 분석을 할 때는 예제보다 훨씬 더 어려운 코드를 만들어야하는데, 파이쏘닉한 코드를 활용한다면 체감이 확 들 것이다.
이제, 파이썬의 데이터분석에 필요한 대표적인 라이브러리를 알아보자.
대표적으로 파이썬에는 넘파이, 판다스, 맷플롯립, 사이파이, 사이킷런, 텐서플로 등이 있다.
각 라이브러리의 용도는 추후 실제 코딩을 하면서 요약하고자 하니, 지금은 이런 것이 있구나~ 하고만 이해하고 넘어가자.
3. [1주차]_기본숙제
Q. 판다스 read_csv() 함수의 매개변수 설명이 옳은 것은 무엇인가요? 정답 : ③
① header 매개변수의 기본값은 1로 csv 파일의 첫번째 행을 열 이름으로 사용한다. (X)
>> 기본값은 '0'으로 가진다.
② names 매개변수에 행 이름을 리스트로 지정할 수 있다. (X)
>> names는 행 이름이 아닌 열 이름을 리스트로 지정할 수 있다.
③ encoding 매개변수에 csv파일의 인코딩 방식을 지정할 수 있다. (O)
>> 인코딩 방식을 'utf-8', 'euc-kr' 등의 방식을 사용할 수 있다.
④ dtype 매개변수를 사용하려면 모든 열의 데이터 타입을 지정해야 한다.(X)
>> 해당 매개변수는 특정 열의 데이터 타입을 지정할 수 있다. 즉, 모든 열의 데이터 타입을 지정할 필요는 없다.
4. [1주차]_추가 숙제(도서정보 데이터 프레임 출력)
우선적으로 데이터 출력을 위하여, 도서정보 파일을 다운로드 하자. gdown 라이브러리를 활용하여 다운 받았다.
로컬에 교재에서 활용할 데이터를 다운받아 정리해둘 디렉토리로 'data'를 만들어 그곳에 저장하기로 하자.
+ 만약, gdown라이브러리가 없는 경우에는, '!pip install gdown'로 셸에서 바로 필요한 라이브러리를 설치하여 사용하자.
(가상환경이 실행 중인 터미널에서 설치해도 상관없다. 단, 이때 주피터노트북이 실행중이라면 커널을 재실행해야 사용가능하다.)
import gdown
gdown.download('https://bit.ly/3eecMKZ', 'data/남산도서관 장서 대출목록 (2021년 4월).csv', quiet=False)
Downloading...
From: https://bit.ly/3eecMKZ
To: /Users/ho/Desktop/HonGong/Data Analysis/data/남산도서관 장서 대출목록 (2021년 4월).csv
100%|██████████████████████████████████████| 58.1M/58.1M [00:04<00:00, 12.6MB/s]
'data/남산도서관 장서 대출목록 (2021년 4월).csv'
import pandas as pd
filePath = 'data/남산도서관 장서 대출목록 (2021년 4월).csv'
df = pd.read_csv(filePath, encoding='EUC-KR', low_memory=False)
df.head()
번호 | 도서명 | 저자 | 출판사 | 발행년도 | ISBN | 세트 ISBN | 부가기호 | 권 | 주제분류번호 | 도서권수 | 대출건수 | 등록일자 | Unnamed: 13 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 인공지능과 흙 | 김동훈 지음 | 민음사 | 2021 | 9788937444319 | NaN | NaN | NaN | NaN | 1 | 0 | 2021-03-19 | NaN |
1 | 2 | 가짜 행복 권하는 사회 | 김태형 지음 | 갈매나무 | 2021 | 9791190123969 | NaN | NaN | NaN | NaN | 1 | 0 | 2021-03-19 | NaN |
2 | 3 | 나도 한 문장 잘 쓰면 바랄 게 없겠네 | 김선영 지음 | 블랙피쉬 | 2021 | 9788968332982 | NaN | NaN | NaN | NaN | 1 | 0 | 2021-03-19 | NaN |
3 | 4 | 예루살렘 해변 | 이도 게펜 지음, 임재희 옮김 | 문학세계사 | 2021 | 9788970759906 | NaN | NaN | NaN | NaN | 1 | 0 | 2021-03-19 | NaN |
4 | 5 | 김성곤의 중국한시기행 : 장강·황하 편 | 김성곤 지음 | 김영사 | 2021 | 9788934990833 | NaN | NaN | NaN | NaN | 1 | 0 | 2021-03-19 | NaN |
'혼자 공부하는 > 데이터분석 with Python' 카테고리의 다른 글
[혼공분석] 6주차_복잡한 데이터 표현하기 (0) | 2025.02.23 |
---|---|
[혼공분석] 5주차_데이터 시각화하기 (0) | 2025.02.16 |
[혼공분석] 4주차_데이터 요약하기 (0) | 2025.02.07 |
[혼공분석] 3주차_데이터 정제하기 (0) | 2025.01.26 |
[혼공분석] 2주차_데이터 수집하기 (0) | 2025.01.19 |