본문 바로가기

Python/Let's Get IT 파이썬 프로그래밍

[Let's Get IT 파이썬 프로그래밍] 6. 데이터 분석 기초

728x90
반응형

이 포스트에서는 'Let's Get IT 파이썬 프로그래밍' 교재의 376~421페이지에 해당하는 내용을 다룬다.


 

1. 환경 설정

이번 단원의 자료는 괄호 안의 링크에서 다운로드하여 진행하면 된다. (자료 링크) 자료 위치를 몰라 꽤나 헤맸는데 도움이 됐으면 좋겠다.

 

사용한 라이브러리는 아래와 같다.

import csv
import io
import requests
import pandas as pd
import matplotlib.pyplot as plt
import operator

 

데이터를 설치한 경로에 따라 코드가 달라지기 때문에 동일한 코드로 원하는 결과를 얻을 수 있도록 외부 URL에서 데이터를 불러오는 코드를 작성해봤다.

 

1-1) 외부 링크에서 CSV 파일 가져오기

 

requests.get()으로 해당 페이지의 데이터를 가져오고, 가져온 데이터를 io.StringIO() 명령어로 문자열을 파일 객체로 만들어준다. 그리고 csv.reader() 명령어를 사용해 데이터를 읽고, 리스트로 만들어 'Let's Get IT 파이썬 프로그래밍' 교재와 같은 상태로 데이터를 가져온다.

 

Github에서 csv 파일을 읽을 때는 raw로 설정을 해야한다고 하니 주의바란다.

 

r = requests.get("https://raw.githubusercontent.com/teacher-jiejie/Lets-get-it-Python-Lecture/main/card.csv")

# https://docs.python.org/ko/3/library/io.html#io.StringIO
text = io.StringIO(r.text)
data = csv.reader(text)

# 표의 헤더 제거 
next(data)

# 리스트화
data = list(data); data

 

1-1 결과

1-2) Github에서 데이터프레임으로 가져오기

# Github에서 바로 가져올 땐, raw 상태여야 불러올 수 있다.
targetUrl = "https://raw.githubusercontent.com/teacher-jiejie/Lets-get-it-Python-Lecture/main/card.csv"
gilbut = pd.read_csv(targetUrl)    # 판다스로. csv파일을 읽어라.
gilbut

 

1-2 결과

9번째 단원의 핵심은 바로 데이터 불러오기가 아닌가 싶다 ^^ 

2. 데이터 분석

데이터를 불러왔다면, 그 이후 for문, if문을 활용해 원하는 데이터를 추출하고 시각화를 진행해주면 된다.

2-1) Top20 지출 장소

교재의 코드를 따라 데이터 분석을 해보자!

spend = {}

for row in data:
    if row[-1] == "전표매입" :
        store, pay = row[-4], int(row[-3])
        
        # 없으면 새로 추가, 있으면 누적
        if store not in spend.keys():
            spend[store] = pay
        else :
            spend[store] += pay

#spend

top20 = sorted(spend.items(), key = operator.itemgetter(1), # 값 기준 정렬
              reverse = True)[:20]
top20_place, top20_sum = [], []

for i in top20:
    top20_place.append(i[0])
    top20_sum.append(i[1])
    
# 그래프 작성
plt.title("4분기 매출 Top-20")
plt.barh(top20


Self Check외의 나머지 코드는 아래의 Github에서 확인할 수 있다.

 

9장-데이터 분석 기초

728x90
반응형