본문 바로가기
혼공학습단 13기

[혼공분석] 1주차: 데이터 분석을 시작하며

by zer0zero 2025. 1. 11.

저번 학기에 데이터 분석 수업을 듣고 아쉬움이 남아 시작하게 되었다! 

6주차 완주까지 아자아자 ~

Chapter 01. 데이터 분석을 시작하며

01-1. 데이터 분석이란


데이터 분석: 유용한 정보를 발견, 결론을 유추하거나, 의사 결정을 돕기 위해 데이터를 조사, 정제, 변환, 모델링하는 과정

  • 범주: 비교적 소규모
  • 목표: 의사 결정을 돕기 위한 통찰을 제공하는 일, 올바른 질문을 하기 위해
  • 주요 기술: 컴퓨터 과학, 통계학, 시각화 등
  • 빅데이터: 사용

→ 다양한 접근 방법과 형태로 여러 비즈니스와 과학 분야에서 사용

 

  • 기술통계: 관측이나 실험을 통해 수집한 데이터를 정량화하거나 요약하는 기법
  • 탐색적 데이터 분석: 데이터를 시작적으로 표현하여 주요 특징을 찾고 분석하는 방법
  • 가설검정: 주어진 데이터를 기반으로 특정 가정이 합당한 지 평가하는 통계 방법

 

데이터 과학: 통계학 데이터 분석, 머신러닝, 데이터 마이닝 등을 아우르는 큰 개념

  • 범주: 대규모
  • 목표: 문제 해결을 위해 최선의 솔루션을 만드는 일
  • 주요 기술: 컴퓨터 과학, 통계학, 머신러닝, 인공지능 등
  • 빅데이터: 사용

 

데이터 분석과 데이터 과학의 가장 큰 차이점은 '결과물'

데이터 분석은 올바른 의사 결정을 돕는 '통찰'을, 데이터 과학은 문제 해결을 위한 최선의 '솔루션'을

 

Data Science vs. Data Analytics — What's the difference?

What Is Data Science? What Is Data Analytics? What Is the Difference? Big data has become a major component in the tech world today thanks to the

www.sisense.com

 

 

데이터 분석가: 프로그래밍 기술을 갖추고 있고 통계학을 이해하면서 정보를 시각적으로 잘 표현할 수 있는 사람

→ 프로그래밍, 수학 ・ 통계, 도메인 지식을 모두 갖추어야 !

→ 넓은 의미에서는 데이터 수집, 처리, 정제, 모델링 / 좁은 의미에서는 기술통계, 탐색적 데이터 분석, 가설검정까지의 과정

https://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram

 

 

데이터 분석에 많이 사용하는 프로그래밍 언어: 파이썬 & R

파이썬: 범용 프로그래밍 언어로, 데이터 분석이나 머신러닝에서 표준 언어처럼 사용

→ 데이터 처리에 사용할 패키지 풍부

R: 통계 계산을 위해 개발된 언어로 범용 프로그래밍 언어는 아님

→ 많은 통계 패키지와 그래프를 위한 도구를 제공

→ 데이터 수집, 전처리 등 수행하기 까다롭고 만들어진 모델을 제품 환경에 적용 어려움

 

 

구글 코랩: 프로그래밍 환경

 

Google Colab

 

colab.research.google.com

 

파이썬 필수 패키지

  • 넘파이(numpy): 고성능 과학 계산과 다차원 배열을 위한 파이썬 패키지
  • 판다스(pandas): 파이썬 데이터 분석을 위한 전문 패키지
  • 맷플롯립(matplotlib): 파이썬 데이터 시각화를 위한 기본 패키지
  • 사이파이(SciPy): 넘파이를 기반으로 구축된 수학과 과학 계산 전문 패키지
  • 사이킷런(scikit-learn): 머신러닝 패키지로 전체 제이터 과학 분야에서 가정 널리 사용하는 머신러닝 패키지

 

01-2. 구글 코랩과 주피터 노트북


코랩: 구글이 주피터 노트북을 커스터마이징 한 것으로 웹 브라우저에서 파이썬 코드 작성 및 실행 가능

→ 클라우드 기반 서비스로 설치 불필요

*주피터 노트북: 대화식 프로그래밍 환경

 

노트북: 작성한 코랩 파일

: 코드 또는 텍스트의 덩어리, 코랩에서 실행할 수 있는 최소 단위

 → 텍스트 셀: HTML과 마크다운 혼용 사용

 → 코드 셀: 마지막 라인의 실행 결과를 셀 아래에 출력

런타임: 구글 클라우드에서 제공하는 가상 서버

 

 

01-3. 이 도서가 얼마나 인기가 좋을까요?


 

01-3.ipynb

Run, share, and edit Python notebooks

colab.research.google.com

 

실습에서 사용하는 데이터의 CSV파일과 엑셀 파일

 

CSV 파일: 콤마(,)로 구분된 텍스트 파일

 → 한 줄하나의 레코드 ()

 → 레코드는 콤마로 구분된 여러 필드로 구성 ()

 

응용 프로그램을 사용해 파일 내용을 확인해야 하는 엑셀 파일보다 단순한 텍스트 파일인 CSV 파일을 더 선호 !

 

 

gdown 패키지 이용하여 코랩에 데이터 다운로드하기

import gdown #웹에서 대용량 파일을 다운로드할 수 있는 패키지
gdown.download('https://bit.ly/3eecMKZ', '남산도서관 장서 대출목록 (2021년 04월).csv', quiet=False)

 

open( ) 함수로 CSV 파일 출력하기

with open('남산도서관 장서 대출목록 (2021년 04월).csv') as f:
	print(f.readline()) #파일에서 한 줄 읽어 출력

 

UnicodeDecodeError 발생: UTF-8 코덱이 어떤 바이트를 읽을 수 없음

 

인코딩: 문자를 컴퓨터가 이해할 수 있는 0과 1의 이진 형태로 바꾸는 것

  • UTF-8: 전 세계 모든 문자를 컴퓨터에 표현하기 위해 만들어진 유니코드를 인코딩하는 방식
  • EUC-KR: 한글 완성형 인코딩 

 

 

chardet 패키지의 chardet.detect( ) 함수를 통해 문자 인코딩 방식 알아내기

import chardet
with open('남산도서관 장서 대출목록 (2021년 04월).csv', mode='rb') as f:
	d = f.readline()
print(chardet.detect(d))

open( ) 함수 mode 매개 변수의 기본값은 텍스트 읽기 모드 'r'

 → 'rb': 바이너리 읽기 모드 (문자 인코딩 형식에 상관없이 파일을 열 수 있음)

 

 

open( ) 함수는 텍스트 파일이 UTF-8 형식으로 저장되어 있다 가정

 → UTF-8 형식이 아닌 EUC-KR 형식의 텍스트 파일이라 open( ) 함수에서 오류 발생

 

 

 

 

인코딩 형식 지정하여 CSV 파일 출력하기

with open('남산도서관 장서 대출목록 (2021년 04월).csv', encoding='EUC-KR') as f:
	print(f.readline())
	print(f.readline())

 

 

read_csv( ) 함수 이용해 CSV 파일을 데이터프레임으로 읽기

import pandaas as pd #as 키워드로 pandas 패키지 이름을 pd로 변경
df = pd.read_csv('남산도서관 장서 대출목록 (2021년 04월).csv', encoding='EUC-KR', low_memory=False)

판다스는 CSV 파일을 읽을 때 메모리를 효율적으로 사용하기 위해 파일을 조금씩 나누어 읽음

 → 판다스가 자동으로 파악한 데이터 타입이 달라지면 경고 발생 ! 

 → low_memory=False 로 지정하여 파일을 나누어 읽지 않고 한 번에 읽도록 하여 해결

 

 

 

head( ) 메소드 사용하여 데이터프레임 처음 다섯 개 행 확인하기

df.head() #( )안에 숫자 미입력 시 5개 출력

 

데이터프레임: 2차원 배열행과 열로 구성

시리즈: 1차원 배열담긴 데이터는 모두 동일한 종류여야 함

 

인덱스: 데이터프레임의 첫 번째 열

CSV 파일에 이미 인덱스가 있다면 index_col 매개변수를 0으로 지정

열 이름: 데이터프레임의 첫 번째 행

 → CSV 파일의 첫 행이 열 이름이 아니라면

 read_csv( ) 함수 호출 시 header 매개변수를 None으로 지정, names 매개변수에 열 이름 리스트(중복 이름 없어야 함) 전달

 

 

to_csv( ) 메서드 이용하여 데이터프레임 CSV 파일로 저장

df.to_csv('ns_202104.csv', index=False)

index=False 지정하여 인덱스 제외하고 저장

 

 

더보기

pandas.read_csv('파일 이름', header=, names=[ ], index=col=, encoding=, low_memory=, dtype=)

DataFrame.head(출력하고 싶은 행 개수)

DataFrame.to_csv('파일 이름', index=, encoding=)

 

1주차 기본 숙제

1주차 추가 숙제

최근댓글

최근글

skin by © 2024 ttuttak