[목차]
0. 여는 말
1. pandas 라이브러리 소개
2. 향후 글 전개 방향
3. 맺는 말
0. 여는 말
최근까지 여러 글들에 걸쳐 URL의 구조와 URL 데이터 종류, 스프레드시트의 각종 함수들에 대해 다뤄보았는데요,
이제 조금씩 본격적으로 코딩과 관련된 내용을 다뤄보려 합니다.
코딩과 관련된 주제로 가장 먼저 무엇을 다루면 좋을까 고민해 보았고, 'pandas (판다스)라는 라이브러리에 대해 먼저 다뤄보자' 는 결론을 내리게 되었습니다.
퍼포먼스마케터를 포함한 수많은 비개발 직군 분들께서 많이 사용하시는 도구 중 하나가 바로 Excel (엑셀)일 텐데요, 이 pandas 라는 라이브러리는 엑셀처럼 표 형식의 데이터를 다루는 데에 적합한 라이브러리입니다. 그만큼 수많은 비개발 직군 분들께서 새로 습득하신 지식을 각자의 현업에서 바로 적용해 보기 좋을 것이라 생각했습니다.
pandas가 무엇인지, 그리고 앞으로 어떤 방향으로 이 주제에 대해 다뤄볼 예정인지, 아래에서 하나씩 상세하게 서술해 보겠습니다.
그럼 글 시작하겠습니다!
1. pandas 라이브러리 소개
위키피디아에서는 pandas를 아래와 같이 소개하고 있습니다.
(위키피디아 링크)
pandas는 데이터 조작 및 분석을 위한 Python 프로그래밍 언어 용으로 작성된 소프트웨어 라이브러리입니다. 특히 숫자 테이블과 시계열을 조작하기 위한 데이터 구조와 연산을 제공합니다. (이하 생략)
우리는 여기서 '숫자 테이블'에 주목할 것입니다. 왜냐하면 우리가 엑셀에서 주로 다루는 데이터가 이와 동일한 형태이기 때문입니다.
pandas를 통해서 우리는 엑셀에서 가능한 대부분의 데이터 편집 작업을 동일하게 수행할 수 있습니다.
(대부분이라고 한 이유는 엑셀은 회귀분석, 그래프 만들기 등의 기능도 포함하기 때문입니다. Python에서 이와 같은 기능을 구현하기 위해서는 scikit-learn, matplotlib 등 다른 라이브러리를 사용해야 합니다)
그리고 pandas는 '데이터 구조가 복잡하고 용량이 매우 클 때' 더욱 강력해집니다.
업무에서 엑셀을 자주 다루시는 분들이라면 데이터가 커지거나, 혹은 데이터 구조나 함수가 복잡해졌을 때, 엑셀 작업 속도가 느려지거나 심지어 '응답없음'이 뜨는 경우를 대부분 겪어보셨을 것입니다 데이터 행수가 몇 만 행이 되고 수십 개의 열을 가지게 되면, 엑셀은 쉽게 느려지고 자주 먹통이 되어 버리는 반면, pandas는 수십만 행의 대용량 데이터에도 대기 시간이 거의 없이 원활하게 실행됩니다.
다시 말하면, pandas는 '대용량 데이터에도 활용 가능한 성능 좋은 엑셀'이라고 볼 수 있겠습니다.
(실제로 제가 공부할 때에는 pandas의 별명이 '스테로이드 맞은 엑셀', '스팀팩 맞은 엑셀' 이기도 하다고 들었던 기억이 있네요 ㅎㅎ)
만약 자주 다루시는 데이터의 크기가 크고 구조가 복잡하다면, pandas가 큰 도움이 될 수 있을 것이라 생각합니다.
(ex. 앱스플라이어 raw data의 경우, 하루치 데이터가 100MB 이상이 되고, 열 갯수가 수십 개에 달하기도 합니다 ㄷㄷ)
2. 향후 글 전개 방향
pandas의 기초부터 정석대로 하나씩 다뤄볼까도 생각했지만, 아무래도 그건 따분할 것 같았고, 굳이 우리가 거의 사용할 일이 없을 것 같은 기능까지 다뤄가며 코딩에 대한 흥미를 떨어뜨릴 필요는 없다고 판단했습니다.
(예를 들면, 열 별 통계 수치들을 요약해 보여주는 describe 함수는 마케터 입장에서 굳이 알아야 할 필요성은 낮을 것입니다. 마케터가 표준편차나 4분위 수치를 볼 일은 많지 않을 것이니까요)
그래서 자주 쓰이고 현업에서 최대한 바로 활용해 볼 수 있는 기능들을 위주로 하여, 엑셀의 기능들과 대응시키며 하나씩 소개하는 방식으로 향후 글들을 전개해 보려 합니다.
pandas 공식 홈페이지의 '10 minutes to pandas'를 참고자료로 활용할 것이고, 일단은 아래의 함수들 정도를 다뤄보려고 합니다.
(아래 리스트는 현재 기준 예정 리스트일 뿐이며, 실제 글 주제 및 내용은 상황에 따라 변동이 있을 수 있습니다 :) )
[다룰 예정인 함수들 리스트 ⬇️]
1. 데이터 In & Out (불러오기 & 내보내기)
- read_csv / to_csv
- read_excel / to_excel
2. 간단한 데이터 생김새 파악
- head / tail
3. 데이터 전처리
- 형변환: str, float, astype
- 날짜 데이터: strptime, strftime (datetime 라이브러리 내 함수)
- 빈 데이터 (NA): dropna, fillna
4. 데이터 선택
- 인덱싱: 행 기준, 열 기준
- 필터링: isin
5. 데이터 병합, 그룹핑, 피벗테이블
- 병합: concat, join
- 그룹핑: groupby
- 피벗테이블: pivot_table
- 정렬: sort_index, sort_values
- 기타: reset_index
6. 기타
- 함수 적용: apply, lambda
- 조건문: where (numpy 라이브러리 내 함수)
3. 맺는 말
다음 글부터는 본격적으로 코드가 조금씩 등장하기 시작할 것입니다. 현재 구상으로는 pandas가 끝나면 크롤링, 그 다음에는 네이버 검색광고 API 사용법에 대해 다뤄보려고 합니다. 뒤로 갈수록 코드의 길이도 길어지고 구조도 복잡해질 텐데, 차근차근 잘 따라와 주시기를 부탁드립니다. 저도 최대한 쉽게 설명드릴 수 있도록 노력할 것이고, 만약 어렵거나 이해가 안 가는 부분이 어디인지 말씀 주시면 몇 번이고 다시 설명 드릴테니, 끝까지 하겠다는 마음가짐만 가지고 따라와 주셨으면 좋겠습니다.
그러면 오늘 글은 여기서 마치겠습니다.
오늘도 긴 글 읽으시느라 고생 많으셨습니다!
우리들의 스트러글(struggle)하는 현생, 화이팅입니다!
'퍼포마의 야근근절을 위한 코딩' 카테고리의 다른 글
Python에서 파일 경로(Path) 설정할 때 알면 좋은 개념들 (0) | 2022.10.04 |
---|---|
pandas - read_csv / to_csv 함수 설명 및 활용 예시 (2) | 2022.10.03 |
URL - 데이터 형식의 종류 (HTML, CSV, PDF, ...) (0) | 2022.09.21 |
구글 스프레드시트(Google Spreadsheet) - IMPORTDATA 함수 설명 및 활용예시 (4) | 2022.09.19 |
구글 스프레드시트(Google Spreadsheet) - IMAGE 함수 설명 및 활용예시 (0) | 2022.09.16 |