새로배운 Qlik으로 작년 수입/지출을 분석했다. 뱅크샐러드를 사용하면 1년간 수입/지출을 파일로 받을 수 있다. 인터넷에서 제공하고 있는 일별 주유가격과 내가 과거 사용한 주유비용을 보면 아래와 같다.
- 2019년 2월에 가장 많이 소비했다.
- 평균기름 가격이 다행히 19년 2월에 가장 쌌다.
- 19년 2월 자동차 운행이 가장 많았다. 공사로 맨날 찰 끌고 다닌다는 듯.
- 1년동안 340,000원 사용했다. 자동차 가동율이 너무 떨어졌다.
- 1,200 원/리터, 15km/리터로 계산하면 약 일년에 4,275km 이동.
- 수입: 월급 외 별도 수입이 거의 없음.
- 지출의 23%가 카드로 결제 됨. 거의 생활비.
- 지출의 22%를 대출 갚는데 사용.
- 지출의 11%를 보험비로 지출.
- 수입 – 지출 = -4,000,000원. 대출을 마이너스로 땡겨 갚았다.
일단 데이터를 로딩하고, Qlik에서 항목을 수정했다.
[과거 기름값]:
LOAD
[번호],
[지역],
[상호],
[주소],
[기간],
MakeDate(left([기간],4),mid([기간],5,2),right([기간],2)) as [날짜],
[상표],
[경유]
FROM [lib://금융/과거_판매가격(주유소)20180308-20190308.csv]
(txt, codepage is 949, embedded labels, delimiter is ',', msq);
[필터된 경유]:
load [경유],
year([날짜])&'.'&month([날짜]) as [연월]
Resident [과거 기름값];
drop Table [과거 기름값];
기름가격 날자가 “.” 로 구분되어 굳이 이렇게 구분해야 Qlik에서 인식했다. 추가 블럭에 이리 로딩한 [과거 기름값]을 부르고, 날자 포멧으로 수정했다. 연관성을 없애기 위해 [과거 기름값]을 지웠다.
뱅크 샐러드에서 테이블을 부르면 카테고리가 대략 맞지만, qlik으로 원하는 부분을 수정하기 힘들다. 강력한 정규식을 지원하는 python pandas를 사용했다.
#_*_ coding: utf-8 _*_
import pandas as pd
import numpy
#Pandas로 업데이트
df = pd.read_csv("./test.csv")
#정규 표현식으로 다시 정리.
conditions = [
(df["내용"].str.contains("?????") & (df["대분류"] == "미분류")),
(df["내용"].str.contains("성과급지급") & (df["대분류"] == "미분류")),
(df["내용"].str.contains('\d{3}-\d{4}') & (df["대분류"] == "미분류")),
(df["내용"].str.contains('마이너스|??|월급통장|??') & (df["대분류"] == "미분류")),
(df["내용"].str.contains('????') & (df[">대분류"] == "미분류"))
]
choices = ["급여","급여","보험","대출","기타수입"]
df["급여"]=numpy.select(conditions, choices, default = df["대분류"])
df.to_csv("./20190313.csv",index=True)
pandas를 잘 사용하지 못해 시간을 많이 썼다. 그러나 qlik을 배워서 함보다 낫다.