해당 챕터에서는 첫 장인만큼, 데이터 분석의 정의와, 코랩과 판다스의 기초적인 사용법을 알아보도록 하자.
데이터 분석이란?
“데이터 분석”은 명확히 정의하기 어렵다.
데이터 분석과 관련된 용어는 다음과 같은 것들이 있다.
- 데이터 과학
- 데이터 분석
- 머신러닝
- 통계학
- 데이터 마이닝
각각의 정확한 의미와 범주를 파악해보자.
데이터 분석은 데이터 과학의 한 종류로, 그 외 다른 데이터 과학의 구성요소는 다음과 같은 것들이 있다.
그렇다면 데이터 과학의 의미는 뭘까?
Quora에 존재하는 질문에서 데이터 과학자 Ji Li가 적은 답변은 데이터 과학을 다음과 같이 정의하고 있다.
- 데이터 세계와 비즈니스 세계를 잇는 다리
- 데이터를 기반으로 비즈니스 결정을 하는 방법
이 책의 저자는 데이터 분석과 데이터 과학을 이렇게 정의한다.
- 데이터 분석
- 올바른 의사 결정을 돕기 위한 통찰 제공
- 데이터 과학
- 한걸음 더 나아가 문제 해결을 위한 최선의 솔루션을 만드는 학문
데이터 과학 | 데이터 분석 | |
---|---|---|
범주 | 대규모 | 비교적 소규모 |
목표 | 문제 해결을 위해 최선의 솔루션을 만드는 일 | 의사 결정을 돕기 위한 통찰을 제공하는 일 |
주요 기술 | 컴퓨터 과학, 통계학, 머신러닝, 인공지능 등 | 컴퓨터 과학, 통계학, 시각화 등 |
빅데이터 | 사용 | 사용 |
데이터 분석의 통계적 관점
- 기술통계
- 관측이나 실험을 통해 수집한 데이터를 정량화하거나 요약하는 기법
- 예를 들면 평균을 계산하거나 최솟값, 최댓값을 찾는 일
- 탐색적 데이터 분석
- 데이터를 시각적으로 표현하여 주요 특징을 찾고 분석하는 방법
- 가설검정
- 주어진 데이터를 기반으로 특정 가정이 합당한지 평가하는 통계 방법
- 기본 원리는 간단하므로 겁낼 필요는 없다.
그럼 데이터 과학자는 어떠한 걸 알고 있어야 하는가?
아래 그림은 드류 콘웨이(Drew Conway)가 그린 ‘데이터 과학 벤 다이어그램’이다.
데이터 과학자 혹은 데이터 분석가에게 필요한 기술을 잘 나타내고 있다고 한다.
만약 수학과 통계가 빠진다면, 검증되지 않은 해결책이 될 것이다.
프로그래밍 기술이 빠진다면, “전통적인 분석”수준을 벗어나지 못할 것이다.
도메인 지식 없이 수행하는 데이터 과학은 비즈니스 가치를 지니지 못한다.
데이터 분석의 과정
데이터 분석의 과정은 “데이터 분석의 정의를 어느 범위로 할 것인가”에 따라 달리 볼 수 있다.
- 넓은 의미 (수처 정모)
- 데이터 수집
- 데이터 처리
- 데이터 정제
- 모델링
- 좁은 의미
- 기술통계
- 탐색적 데이터 분석
- 가설검정
참고 - 데이터 마이닝과 머신러닝의 차이
- 데이터 마이닝
- 데이터에서 패턴 혹은 지식을 추출하는 작업
- 머신러닝, 통계학, DBMS와 관련이 많다.
- 데이터를 수집하는 작업이 아니라, 수집된 데이터에서 패턴을 찾는 작업을 의미한다.
- 규칙이나 패턴을 사용하는 주체가 사람이다.
- 머신러닝
- 데이터에서 자동으로 규칙을 학습하여 문제를 해결하는 소프트웨어를 만드는 기술
- 머신러닝으로 학습한 소프트웨어 객체를 "모델"이라고 한다.
- 규칙이나 패턴을 사용하는 주체가 컴퓨터이다.
직접 데이터 다뤄보기 - 도서관 대출 정보.csv
이 책은 특정 서적의 인기도를 파악하기 위해 도서 대출 정보를 가져오려 했지만, 도서 판매 정보를 얻을 수는 없었고, 따라서 “공공 도서관의 대출 정보를 이용해 특정 서적의 인기도를 파악”해보며 데이터 분석을 학습하는 도서이다.
따라서 먼저 도서 대출 정보를 가져와보자.
파이썬으로 CSV 파일 출력하기
파일 입출력 시에는 파일의 인코딩 방식에 주의해야 한다.
코랩에 설정된 파이썬의 기본 사용 유니코드는 UTF-8 이다.
파일 인코딩 형식 확인 - chardet.detect() 함수
바이너리로 읽은 character 배열에서 파일 앞에 붙어있는 인코딩 방식을 확인하는 메소드이다.
csv를 판다스를 이용해 데이터프레임으로 다루기
판다스에서 다루는 자료구조로는 데이터프레임(df), 시리즈(s)가 있다.
데이터프레임이란?
- 데이터를 행과 열로 구성된 2차원 표(스프레드시트와 비슷)로 정리하는 데이터 구조를 의미한다.
- 각 열 별로 데이터 타입을 사용할 수 있다.
시리즈란?
- 1차원 배열이라고 생각하면 편하다.
- 모두 공통의 하나의 데이터 타입을 사용해야 한다.
판다스의 주요 메소드
df = pd.read_csv()
- 판다스에서 csv파일을 읽을 때 사용하는 함수
판다스의 데이터 타입 추론
csv파일을 읽을 때 각 열에 어떤 종류가 저장되어 있는지 자동으로 파악하는데, 버퍼를 이용해서 읽기 때문에 자동으로 파악한 데이터 타입이 달라질수도 있다.
아니면 따로 "dtype=딕셔너리" 형태로 데이터 타입을 직접 넣어주는 것도 가능하다.
판다스의 열 이름
판다스는 첫번째 행을 열 이름으로 인식한다. 이 예시에선 "번호, 도서명, ..." 들이 열 이름으로 인식되어 데이터프레임을 구성하게 된다.
만약 첫 행이 열 이름이 아니라면, read_csv(header=None)으로 지정해서 데이터 첫 행에 열 이름이 없다는 것을 알리고 names 매개변수에 열 이름 리스트를 따로 전달해준다.
df.head()
- 데이터프레임의 처음 다섯개 행을 확인하는 메소드이다.
df.to_csv()
df.to_csv()는 특정 데이터프레임을 csv 파일로 저장하는 메소드를 의미한다.
저장 시 행 인덱스를 함께 저장하기때문에, 해당 파일을 index_col 매개변수 없이 다시 읽을 시 다음과 같은 불상사가 발생하기도 한다.
데이터프레임의 인덱스
판다스의 Dataframe의 “인덱스”란, 0부터 시작하는 행의 row number를 의미한다.
- read_csv() 시 이미 해당 csv파일에 데이터프레임의 인덱스가 존재할 경우, index_col 매개변수로 사용이 가능하다.
- to_csv() 시 인덱스를 저장하고 싶지 않으면, index=False로 저장하지 않을 수 있다.
요약
- 데이터 분석은 뭘까?
- 데이터 세계와 비즈니스 세계를 잇는 다리
- 데이터를 기반으로 비즈니스 결정을 하는 방법
- 넓은 의미 (수처 정모)
- 데이터 수집
- 데이터 처리
- 데이터 정제
- 모델링
- 좁은 의미
- 기술통계
- 탐색적 데이터 분석
- 가설검정
- 판다스의 자료구조
- 데이터프레임
- 시리즈
- 이번에 학습한 판다스 메소드
- pd.read_csv()
- df.head()
- df.to_csv()
혼자 공부하는 데이터 분석 with 파이썬 - 예스24
혼자 해도 충분하다! 1:1 과외하듯 배우는 데이터 분석 자습서이 책은 독학으로 데이터 분석을 배우는 입문자가 ‘꼭 필요한 내용을 제대로 학습’할 수 있도록 구성했습니다. 뭘 모르는지조차
www.yes24.com
'CS Repository > 기초 통계학' 카테고리의 다른 글
공공 데이터셋 탐색 사이트 (1) | 2025.07.11 |
---|---|
[개발자를 위한 통계학 찍먹하기] 0편 - 동기 (0) | 2025.05.06 |