brunch

You can make anything
by writing

C.S.Lewis

by 꽃비내린 May 23. 2020

가계부를 뜯어보자

생활 속 데이터 분석하기

거창하게 데이터 분석하기라고 했지만 고급 통계기술을 기대했다면 여기서 멈추고 다른 글을 읽는 것을 권한다. 작년부터 쌓아둔 가계부 데이터를 꺼내와 시각화하고 그 의미를 찾는 정도에 만족하고 쓴 글이다. 데이터를 분석한다고 하면 복잡하고 어려운 걸로만 생각하는데, 자기가 만들어낸 데이터를 뜯어보면 의외로 재미있고, 그 뒷배경도 알고 있어 의미를 찾기도 쉽다. 이번 글로 한 번쯤 생활 속 데이터를 돌아보는 계기가 되길 바라며, 가계부 뜯어보기를 시작한다.




가계부 앱을 여러 개를 사용하다 작년부터 편한가계부에 정착해서 사용하고 있다. 가계부 앱은 보통 수입/지출 내역을 통계로 보여주는데 연, 월, 주간별로만 보여주고 있어 추세를 보거나, 연별, 월별 비교가 어렵다. 또 상위 카테고리와 하위 카테고리로만 구분하고 있어 주로 어떤 것에 지출했는지 알 수가 없다. 이런 분석을 하기 위해선 엑셀파일로 받아 데이터를 보는 것이 필요하다.

편한가계부 통계


엑셀파일로 받아오기

편한가계부에선 백업/복원 기능을 제공하고 있다. 설정탭에서 백업/복원을 선택한 후 '메일로 엑셀파일 내보내기'를 하면 가계부에 기록한 내역을 엑셀로 받아볼 수 있다. 필자의 경우 데이터를 전체로 하고 다운받았다.

엑셀파일 내보내기 Flow


데이터 전처리하기

엑셀파일을 열면 아래처럼 날짜, 은행, 상위카테고리, 하위카테고리, 수입/지출, 내용, 메모, 금액 순으로 나온다. 구분하기 쉽게 명칭을 date, bank, category, sub_category, payment_info, income/expend, item, price로 변경했다. 


모든 데이터를 분석하면 좋지만 2,038행에 달하는 많은 양을 한번에 처리하기엔 어려워 비교적 재밌고 의미 있는 분석이 될만한 '식비'로 한정해서 진행했다. 식비는 지출이므로 income/expend 열을 제외했다. 분석하기 전에는 원데이터에 이상이 없는지 체크하는 것이 필요하다. date, bank, category, price열은 자동으로 입력되기 때문에 이상이 없지만 그 외 열은 손볼 때가 많았다.


우선 payment_info는 뱅크 알림에서 가져오기 때문에 가게명이 일부 잘리거나, 문장형태로 나오는 경우가 있다. 일일이 수정하는 과정(일명 노가다)을 그나마 줄이는 방법은 내림차순 혹은 오름차순으로 정렬해서 유사한 것끼리 복붙하거나, ctrl+H 단축키로 한번에 수정하는 것이 있다.(더 좋은 방법이 있다면 알려주시길! 데이터 전처리는 너무 고통스럽다..흑)


item열은 더 심각하다. 평소에 영수증 내역을 기록할 때 콤마를 쓰는 것이 좋지만 매번 입력하기 귀찮아 띄어쓰기로 대신한다. 문제는 구매한 상품명에 띄어쓰기가 있는 경우다. 초반에는 이런 문제를 없애기 위해 상품명을 붙여 썼지만 보기에 영 좋지 않아 띄어 썼다. 시간이 촉박해 아쉬운 대로 '텍스트 나누기'를 이용해 공백으로 텍스트를 분리한 다음 첫 번째 열만 사용하기로 했다.

엑셀 텍스트 나누기
텍스트 나누기 후 첫 번째 열만 남겼다


데이터 시각화하기

데이터를 차트로 나타내기 전에 피벗테이블을 생성한다. 행과 열을 자유롭게 바꿀 수 있는 건 물론, 슬라이서를 이용해 일자별로 확인할 수 있기 때문이다. 처음엔 단순히 월별 추이를 살펴봤지만 추이만으로는 의미를 파악하기 어려워 요일을 추가했다. 이를 방사형으로 나타내니 패턴이 보였다.


2018년은 토요일과 목요일에 지출이 높게 나타났으며, 2019년은 토요일과 금요일에 지출이 높게 나타났다.

2018년 식비 지출 데이터
2019년 식비 지출 데이터


2018년 피벗테이블을 살펴보니 목요일의 경우 4월과 5월에 값이 높게 나타났다. 해당 월의 데이터를 살펴보니 이 시기에 아르바이트를 했었는데 매월 특정 목요일에 점심값을 미리 계좌에 모아 넣고, 한 명이 계산하는 식으로 진행했기 때문이었다. 토요일이 높은 이유는 재작년에 일을 하는 주중에는 피곤해서 장을 보진 않았고, 주말인 토요일에 장을 봤기 때문이었다.


2019년 피벗테이블에선 금요일과 토요일에 값이 높게 나타났다. 금요일 저녁 퇴근길에 이번주를 마감한다(?)는 느낌으로 마트에서 장보기도 했었다. 또 밑반찬을 반찬전문점에서 따로 사 먹기 시작하면서 토요일에도 지출하는 경우가 많았다.


수요일도 꽤 높게 나온 점이 특이했는데, 해당 월 데이터를 살펴보니 이때도 마트에서 장본 것으로 나왔다. 일주일치 장을 봐야는데 계산을 잘못해서 반찬이 떨어지는 경우가 있었다. 불가피하게 주중에 장을 다시 봐야 해서 이런 수치가 나온 것으로 보인다.


이번엔 금액 대신 빈도로 계산해봤다. 2018년이나 2019년이나 순위는 크게 달라지지 않았다. 빈도를 계산하기 전에 평소 카페와 편의점을 많이 가니 꽤 높게 나올 거라고 예상을 했다. 실제로 2018년 기준으로 보면 편의점과 카페가 압도적으로 높게 나온다. 편의점이 400회 이상으로 예상보다 높게 나와 깜짝 놀랐다. 거의 매일 방문했다고 봐도 무방할 정도다.


식당 종류별 빈도를 봐도 재미있는 해석이 나왔다. 한식, 중식, 일식, 양식 중 어떤 걸 선호하냐고 묻는다면 아래 데이터에서 보시라. 한식(77회) > 일식(23회) > 양식(20회) > 중식(13회) 순으로 나타났다. 의외로 중식이 낮게 나왔다. 보통 직장에 일할 때 기름기 많은 음식보다는 백반 위주로 먹어서 이런 결과가 나온 것으로 보인다. 

2018년 카테고리별 빈도

마지막으로 카테고리별로 어떤 음식/음료를 구매했는지 확인해봤다. 데이터를 한번에 시각화하니 보기 좋지 않아 카테고리 하나씩만 살펴보기로 했다. 그중 자주 가는 카페와 편의점을 보면 다음과 같다.

카페 카테고리의 item 비중


카페 카테고리를 살펴보면 예상했듯이 가장 기본 음료인 카페라떼와 아메리카노가 약 47%를 차지하고 있다. 딸바(딸기바나나 줄임말)가 세 번째로 나온 점이 특이했는데, 한창 쥬씨 같은 생과일주스점에서 딸바를 자주 먹었다. 여름에 상큼하면서 시원한 음료를 찾을 때 주로 딸바를 마셨던 걸로 기억난다.

편의점 카테고리의 item 비중

편의점에선 워낙 이것저것 사는 경우가 많아서인지 item 비중이 10% 이하로 비슷하게 차지했다. 특히 바나나 2입이 8.7%로 나타나 신기했다. 아침에 간단하게 먹거나 점심때 가볍게 먹을 때 바나나 2입을 사곤 했었는데, 그 비중이 꽤나 있었나 보다. 도리토스, 열라면, 비타500, 꼬북칩, 크런치 등 브랜드 이름도 보인다.


후기

예전에도 가계부로 분석해보려 시도했는데, 데이터를 전처리하는 시간이 오래 걸려 중간에 하다 멈췄다. 이번에는 욕심을 부리지 않고 하나만 정해서 분석을 해보니 생각보다 재미있는 분석을 할 수 있었다. 시간상 간단하게만 분석했지만 여러 방법으로도 분석이 가능할 것이다. 데이터를 분석하고 싶은데 데이터가 없어서 못했다면? 지금 가지고 있는 데이터를 뜯어보는 건 어떨까.

작가의 이전글 타인에 대한 심판은 가능할까요?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari