한빛출판네트워크

기획연재

파이썬 데이터 분석 입문 01, 왜 프로그래밍 기반 데이터 분석이 중요한가?

한빛미디어

|

2017-11-08

by 클린턴 브라운리

엑셀을 능숙하게 다루는 사람에게는 프로그래밍 기반의 데이터 분석이 처음에는 오히려 불편하고 비효율적으로 느껴질 수 있다. 예를 들어 ‘어떤 열의 전체 셀을 선택하고 특정 값을 붙여넣기’하는 코드를 힘들게 완성했지만, 작업 속도가 느리다고 느끼거나 코드가 실행되지 않을 수도 있다(오타라도 내면 몇 번이나 다시 수정해야 할 수도 있다). 하지만 처음엔 낯설고 불편하더라도, 코딩에 익숙해질수록 반복 작업을 자동화는 데 파이썬이 훌륭하고 뛰어난 도구라는 것을 알게 될 것이다.

 

python-and-sheets.png

 

데이터 분석 작업을 하는 사람들이 프로그래밍을 배워야 하는 이유는 여럿 있다. 우선 수작업이 불가능한 방대한 규모의 데이터를 처리하고 분석하는 것이 가능해진다. 두 가지 상황을 생각해보자. 첫 번째는 엑셀에서 다루기 어려운 어려운 (혹은 열리지 않는) 대용량 파일을 처리하는 상황이다. 설사 파일이 열린다 해도 수작업으로는 정상적인 데이터 처리를 기대하기 어렵다. 데이터 양이 많으면 수정하는 데 너무 많은 시간이 걸릴 뿐 아니라 작업량이 많아지면서 실제로 수정이 필요한 부분을 놓치게 된다. 즉 데이터 자체에 오류가 발생할 확률이 그만큼 높아지는 것이다. 두 번째는 다량의 파일에 포함된 데이터를 처리하는 상황이다. 때에 따라서는 수십, 수백, 심지어 수천 개의 파일 속에 포함된 데이터를 일일이 처리해야 한다. 파일 개수가 늘어날수록 수작업으로 처리하는 것은 불가능해진다. 이 두 가지 상황 모두 프로그래밍으로 해결할 수 있다. 특히, 파이썬 스크립트는 대용량 파일과 다량의 파일을 빠르고 효율적으로 처리할 수 있다.

1.png

('흠.. 내가 놓친 것은 무엇일까? 데이터 분석 넘나 어렵...')

 

데이터 분석 작업을 하는 사람들이 프로그래밍을 배워야 하는 또 다른 이유는 작업의 자동화이다. 데이터 처리 및 분석은 대부분 반복적이고 많은 시간이 걸리는 작업이다. 흔히 데이터 매니지먼트는 고객이나 공급자로부터 데이터를 수집하고, 보관이 필요한 데이터를 추출하고, 분석을 위해 데이터 형태나 자료형을 변환한 뒤, 데이터베이스 등 저장소에 저장하는 순서로 진행된다(데이터 과학자들은 이러한 과정을 ETL(extract, transform, load)이라 부른다). 일반적인 데이터 분석 과정 역시 유사하다. 데이터 수집과 전처리를 진행하고 분석을 실행한 뒤 그 결과를 보고서로 작성한다. 분석의 전 과정을 단계별로 명확하게 정의하면, 필요한 연산을 자동으로 수행하는 파이썬 코드를 작성할 수 있다. 자동화를 위한 스크립트가 완성되면 그동안 반복 작업에 소모된 시간을 다른 더욱 중요한 일에 쓸 수 있다.

 

2.png

('그래 파이썬으로 다시 해보는거야!')

 

또한, 데이터 분석 작업이 자동화되면 에러가 발생할 가능성이 작아진다. 수작업으로 데이터를 처리할 때에는 복사/붙여넣기를 잘못하거나 오타가 발생할 확률이 높다. 작업을 급하게 진행하다가 혹은 작업자의 컨디션에 따라 실수가 발생할 수 있기 때문이다. 대용량 파일이나 다량의 파일을 동시에 처리해야 하는 상황이라면 반복 작업으로 인한 에러 발생 가능성은 더욱 커진다. 반면에 자동화가 되면 정신 산만이나 육체 피로 등의 컨디션 난조에서 자유롭다. 작업자는 스크립트를 디버그하고 실행만 하면 된다. 파이썬 스크립트는 지치지 않고 일관되게 작업을 수행할 것이다.


데이터 분석 작업을 하는 사람들이 프로그래밍을 배워야 하는 마지막 이유는 재미와 자신감을 얻을 수 있다는 것이다. 기본적인 프로그래밍 문법을 익히고 ‘데이터 분석’이라는 목표를 달성하는 과정에서 재미를 얻을 수 있다. 온라인의 수많은 예시 코드를 자신의 작업에 맞도록 수정하려면 개인의 창의력과 문제 해결 능력이 필요하다. 결국 자신의 작업에 적합한 코드나 구문을 찾아내고 그것이 작동하도록 수정하는 창의적 과정에서 재미가 발생한다. 뿐만 아니라 프로그래밍은 작업자에게 자신감을 심어준다. 위에서 살펴본 것처럼 대용량이나 다량의 파일을 처리하는 상황에서 프로그래밍을 모른다면 많은 시간이 걸리거나 처리가 불가능할 것이다. 하지만 프로그래밍을 할 수 있다면 이러한 문제를 파이썬 스크립트로 쉽고 빠르게 해결할 수 있다. 프로그래밍을 배우기 이전에는 힘들거나 불가능했던 작업이 가능해지면서 자신감을 갖게 될 것이다.

 

3.png

('파이썬으로 잃었던 자신감이 뿜뿜!')

 

이 책은 데이터를 다루고 분석하는 작업을 하지만 프로그래밍 경험은 전혀 없는 사람들을 대상으로 한다. 이 책의 예제들은 텍스트 파일, CSV 파일, 엑셀 파일, 데이터베이스 등 일반적인 데이터 소스 및 데이터 형식 대부분을 다룬다. 또한 프로그래밍 경험이 없는 사람들이 대상이므로 범용으로 적용할 수 있는 기초적인 프로그래밍 기술에 중점을 두고 있다. 1장에서는 자료형, 컨테이너, 제어 흐름, 함수, if-else 구문, 파일 입출력 등 파이썬 프로그래밍의 기본 개념을 소개한다. 또한 2장과 3장에서는 두 가지 버전의 스크립트를 보여준다. 첫 번째는 기본 파이썬 버전이고 두 번째는 팬더스 버전이다. 기본 파이썬 버전을 제시하고 살펴봄으로써 직접 해결책을 구현하는 방법을 먼저 배운 다음 팬더스 버전을 배운다. 기본 파이썬 버전으로 기본적인 프로그래밍 기술을 익히고 나면 팬더스에서 단순화된 개념을 확실하게 이해하는 것이 가능해진다. 이를 바탕으로 팬더스를 더욱 효과적으로 이용할 수 있을 것이다.

 

필자는 독자들이 곧바로 사용할 수 있는 도구를 제공하는 동시에 그 도구들이 어떻게 작동하는지 상세하게 설명하려 노력했다. 이를 통해 독자들은 ‘코드가 작동하는 원리’에 대한 견고한 이해를 구축할 수 있다. 원리를 이해하면 온라인 검색으로 해결책과 유용한 코드를 찾아 책에 나오는 연습 문제를 해결할 수 있다. 다시 말해 자신의 작업에 필요한 코드가 무엇인지 그리고 그 코드가 작동하려면 어떻게 수정해야 하는지, 이 두 가지 모두를 알게 된다는 것을 의미한다.

 

 

B9202482281_l.jpg

 

지금 바로 파이썬으로 데이터 분석에 입문하세요!

(도서를 클릭하시면 상세 페이지로 이동합니다)

이전 글 : 이전글이 없습니다.

다음 글 : 파이썬 데이터 분석 입문 02, CSV 파일

댓글 입력