데이터를 모아 분석하고 결과를 요약해 다른 사람들에게 전달하고자 하는 데이터 분석가, 기획자, 개발자 여러분. 오늘도 어김없이 고통의 시간이 찾아왔습니다. 자, 이제 여러분은 어떤 문제에 대한 답을 찾는 데 있어 필요한 데이터를 찾아 나서야 합니다. 이를 위해 하루에도 무수히 쏟아지는 기사, SNS 등을 통해 크고 작은 원시 데이터를 모으고, 정형과 비정형으로 뒤섞인 데이터를 확인하면서 데이터를 분석하는 데 의미 있는 결과를 만들어 낼 수 있는 데이터를 정리해 나갑니다. 데이터를 수집하고 전처리하는 과정은 데이터 기반 작업에서 정말 중요한, 첫 단계입니다. 원시 데이터는 노이즈가 많고, 불안정하고, 값이 누락된 경우가 있습니다.  따라서 이러한 데이터를 사용하면 분석 결과에 심각한 오류가 발생할 수 있습니다. 데이터 전처리 과정을 소홀히 했다가는 처음부터 다시 해야 하는 지옥문을 열게 될 수도 있습니다.

다운로드

여러분은 지금, 이러한 데이터 전처리 전반에 걸친 작업을 어떻게 하고 계신가요? 수많은 출처에서 데이터를 복사하고 스프레드시트에 붙여 넣어 처리하는 단순 노가다를 반복하고 있진 않으신가요? 도구를 사용하고 있긴 하지만 단순한 사용을 넘어 좀 더 편리하게, 황금 같은 내 시간을 줄여 줄 ‘뭔가’가 있을 거란 생각에 하루에도 몇 번이나 구글링을 하고 있진 않나요? 만일 프로그래머라면, 반복적인 데이터 전처리를 좀 더 효과적으로 하는 개발 방식을 궁금해 할 수도 있습니다. 고민에 대한 해결책을 찾는 방법은 많습니다. 인터넷 어딘가에 숨어 있는 잘 정리된 글을 찾아 떠날 수도 있고, 주변에 데이터 분석 분야에 정통한 멘토가 있다면 조언을 구할 수도 있겠지요. 그러나 그런 도움을 받기 어려운 상황이라면 또는 이런저런 길을 통해서 적절한 해결책을 찾지 못한 분이라면,  <파이썬을 활용한 데이터 길들이기>에서 그 답을 한번 찾아 보면 어떨까요?

<파이썬을 활용한 데이터 길들이기>는 <Data Wrangling with Python>의 번역서로, 말 그대로 ‘파이썬을 활용한 데이터 랭글링’을 다룹니다. ‘데이터 랭글링’. 참 생소한 용어죠? 데이터 랭글링‘은 지저분하거나 정제되지 않은 데이터를 유용하게 만드는 과정을 가리키는 용어로, 미가공된 데이터를  쓸모 있는 형태로 변환하는 전반적인 작업을 의미합니다. 데이터 전처리보다는 상위 개념이고, 데이터 분석보다는 절차적으로 이전에 오는 개념입니다.

이 책은 스프레드시트 사용을 넘어 파이썬 프로그래밍 언어를 활용하여, 쉽고 빠르게 지저분한 데이터를 사용 가능한 형식으로 처리할 수 있도록 돕기 위해 쓰였습니다. 데이터 분석 전에 매번 반복하고 있는 수작업을 상상해 보세요. 지루하고 반복적이란 것을 떠나 아마 매주 한두 시간 정도를잡아먹고 있을 텐데, 여러분의 시간은 소중합니다.. 이러한 작업을 자동화하는 스트립트를 작성할 수 있다면 어떨까요? 데이터 처리에 걸리는 시간이 30초도 되지 않을 것입니다. 절약되는 시간에 다른 일을 하거나 다른 작업들을 자동화 할 수도 있습니다. 데이터를 변형시켜 현재의 형태에서는 어찌할 수 없는 정보를 처리하는 작업을 수행할 수도 있습니다.

Hands-Hand-icon

잠깐! 왜 파이썬인가요? 꼭 파이썬이 아니더라도 몇 가지 프로그래밍 언어를 데이터 랭글링에 쓸 수 있습니다. 엑셀과 같은 프로그램을 이용해도 데이터 랭글링이 가능합니다. 엑셀을 이용해 프로그래밍을 하더라도 파이썬을 이용했을 때와 동일한 결과물을 얻을 수 있지만, 엑셀과 같은 프로그램이 처리하지못하는 작업들이 존재하기 때문에 효율성의 측면에서는 차이가 존재합니다. 이 책에서 파이썬을 사용하는 이유는 파이썬이 사용하기 편리하며 파이썬을 이용하여 좀 더 간단하고 직관적으로 데이터 랭글링을 할 수 있기 때문입니다.

note-2

역자 이제원 님의 추천 : 데이터 수집부터 처리, 분석, 시각화, 제품화 모두를 커버하고 싶다면 파이썬을, 고급 분석과 화려한 시각화에 집중하고 싶다면 R 사용을 권합니다.

이 책은 데이터 수집에서 클리닝, 결과 제시, 스케일링, 자동화까지의 다양한 과정을 다룹니다. 이 책의 목표는 여러분이 쉬운 데이터 랭글링 방법을 익혀 데이터의 내용과 분석 자체에 좀 더 집중하고 시간을 투자할 수 있도록 돕는 것입니다. 이 책을 읽고 나면 현재 사용하고 있는 도구의 한계를 넘어서서 수작업을 대체 할 수 있는 깔끔하고 읽기 쉬운 파이썬 코드를 작성할 수 있게 될 것이며,

데이터 처리를 자동화하고 파일 편집과 클리닝 작업을 정기적으로 할 수 있을 것입니다. 뿐만 아니라, 이전에는 접근할 수 없었던 장소에서 데이터를 수집하거나 파싱하고 더 큰 규모의 데이터세트를 처리할 수 있게 될 것입니다.

블로그_표1

<그림 : 이 책에서 다루는 내용의 전체 흐름 >

이 책은 프로젝트 기반 접근 방식을 택하고 있으며, 각 장은 뒤로 갈수록 점점 더 복잡한 내용을 다룹니다.  연구 문제를 만들어 내는 것부터 시작해 데이터 수집, 데이터 클리닝, 데이터 조사, 결과 토론, 큰 규모의 데이터세트 스케일링, 그리고 이러한 과정을 자동화 하는 방법을 다루고 있어 따라하는 과정을 통해 배워 나갈 수 있습니다.

1. 먼저, 계획에 따라 데이터를 수집하고 필요한 형태로 전환하는 기술에 대해 다룹니다.

  • 3장 기계가 읽을 수 있는 데이터
  • 4장 엑셀 파일 다루기
  • 5장 파이썬에서의 PDF와 문제 해결
  • 6장 데이터 수집 및 저장하기

3, 4, 5장에서는 CSV, 엑셀(Excel), XML, JSON, PDF 등의 형태로 된 파일에서 데이터를 추출하는 방법을 소개합니다. 6장에서는 데이터 수집과 관련한 사람 간 의사소통에 필요한 작업 절차에 대해 이야기하고 법률적인 측면에 대해 간단히 다룹니다.

2. 어떤 정보가 쓸모 있고 어떤 정보가 그렇지 않은지를 판단하면서 데이터가 지니고 있는 이야기를 찾는 과정을 살펴봅니다.

  • 7장 데이터 클리닝하기: 조사, 매칭 그리고 서식화
  • 8장 데이터 클리닝하기: 표준화와 스크립트
  • 9장 데이터 탐색과 분석

여기서는 다양한 오픈소스 툴을 소개하고, 맞닥뜨리게 될 다양한 데이터 관련 이슈들을 다룹니다. 클리닝 스크립트를 작성하거나 정형화된 접근 방식을 사용하는 것 중 어떤 것을 선택해야 하는지 이야기, 중복 기록, 이상치, 서식 문제 등 흔히 볼 수 있는 오류들을 해결하는 방법을 다룹니다. 이 내용과 연결해서 11장, 12장, 13장에서는 웹사이트에서 API를 통해 데이터를 추출하는 기법을 살펴봅니다.

3. 파이썬을 이용해 데이터를 보여주는 방법을 알아봅니다.

  • 10장 데이터 표현하기

10장 이후에는 데이터를 통해 무엇을 이야기하고 싶은지 결정하고 데이터를 정리 및 처리한 후에 파이썬을 이용해 여러 가지 형태로 이야기를 전달하는 방법과 다양한 발표 방식을 비교해 봅니다. 이후 14장에서는 적은 시간을 투자하여 많은 데이터를 처리하기 위한 데이터 분석 과정의 스케일링(scaling)에 대해 이야기하고, 프로젝트를 자동화 시킴으로써 지속적으로 결과 보고를 얻을 수 있는 방법을 살펴봅니다.

분야를 막론하고 산업 분야에서 ‘데이터’를 떼어 놓는 일은 상상하기도 어려워졌을 만큼 중요한 부분을 차지하고 있습니다. 앞으로는 전통적인 방식으로 얻었던 데이터뿐만 아니라 IoT나 새로운 산업 분야로부터 얻어진 다양한 데이터 형식을 유연하게 처리할 수 있는 데이터 전문가에 대한 수요가 높아질 것입니다. 가까운 미래를 대비해 이 책이 독자들의 시야를 넓히고 지식을 더욱 풍요롭게 할 간접 경험의 도구가 되기를 바랍니다.

> 구입처

[ Yes24 ] [ 교보문고 ] [ 알라딘 ] [ 인터파크 ]