하위 목표 3
3개월간 지출액이 가장 높은 가맹점 10개 뽑기
알고리즘
1. 가맹점별 지출액을 저장할 빈 딕셔너리 만들기
2. 전체 이용내역을 돌며 반복하기
2.1 각 이용내역에서 매입상태가 '전표매입'이라면
2.1.1 해당 건의 가맹점명과 이용금액 구하기
2.1.2 만약 딕셔너리의 키에 해당 가맹점이 없다면
2.1.2.1 가맹점명을 키로, 이용금액을 값으로 하는 요소 추가하기
2.1.3 만약 딕셔너리의 키에 해당 가맹점명이 있다면
2.1.3.1 해당 요소에 이용금액 더하기
3. 값을 기준으로 완성된 딕셔너리를 내림차순 정렬한 다음, 앞에서 10개 요소 뽑기
4. 지출액 상위 10개의 가맹점명과 지출액을 각각 리스트에 저장하기
5. 가맹점명 리스트와 지출액 리스트로 막대그래프 그리기
코드
spending = {}
for row in data:
if row[-1] == '전표매입':
store, payment = row[-4],
int(row[-3])
if store not in spending.keys():
spending[store] = payment
else:
spending[store] += payment
top10 = sorted(spending.items(),
key=operator.itemgetter(1),
reverse=True)[:10]
top10_store, top10_amount = [], []
for t in top10:
top10_store.append(t[0])
top10_amount.append(t[1])
plt.barh(top10_store, top10_amount)
▲ 그림 10-8 프로젝트 로드맵 예시 – 프로그램 구현 단계