🐍 Python

csv 파일을 이용해서 데이터 히스토그램 만들기

ji-hyun 2020. 6. 10. 04:07

csv 파일이란

'comma - Separated Values' 의 약자로, 각각의 데이터 값을 콤마(,) 로 구분하는 파일 형식을 말해요.

 

 

csv 파일에서 데이터를 읽어오려면

csv.reader() 라는 함수를 써서 데이터를 읽어올 수 있답니다

 

 

 

예를 들어 seoul.csv 라는 파일을 읽어온다면 코드를 이렇게 작성해볼 수 있습니다.

 

import csv            //csv 파일을 사용하려면 import를 해주어야 합니다
f = open('seoul.csv')
data = csv.reader(f)  //csv 파일에서 데이터를 읽어오기 위해 csv.reader() 함수를 사용합니다
print(data)
f.close()

 

 

 

응용: 헤더를 제외한 한 행씩 출력하기

import csv
f = open('seoul.csv')
data = csv.reader(f)
header = next(data)    //next() 함수를 통해 data의 첫 행을 꺼내어 header에 저장한다
for row in data:
	print(row)
f.close()

 

 

 

 

 

8월의 최고 기온 데이터 히스토그램으로 표현하기

 

import csv
import matplotlib.pyplot as plt

f = open('seoul.csv')
data = csv.reader(f)
next(data)
aug = []                           // 8월의 최고 기온 값을 저장할 aug 리스트를 생성

for row in data: 
	month = row[0].split('-')[1]   // -로 구분된 값 중 2번째 값을 month에 저장
    if row[-1] != '':              // 마지막 값이 있다면 (마지막 값은 최고기온 값을 나타냄)
    	if month == '08':                 // 그리고 8월이라면
        	aug.append(float(row[-1]))    // aug 리스트에 최고기온 값을 추가
            
plt.hist(aug, bins=100, color='r')        // 히스토그램 그리기(100개로 칸 나누기)
plt.show()

 

문자열 나누기 split 함수 - split 함수는 a.split()처럼 괄호 안에 아무 값도 넣어 주지 않으면 공백(스페이스, 탭, 엔터 등)을 기준으로 문자열을 나누어 준다. 만약 b.split(':')처럼 괄호 안에 특정 값이 있을 경우에는 괄호 안의 값을 구분자로 해서 문자열을 나누어 준다. 이렇게 나눈 값은 리스트에 하나씩 들어가게 된다.

a = "Life is too short"

a.split()

>>> ['Life', 'is', 'too', 'short']

 

month = row[0].split('-')[1]

data의 첫번째 줄에서 -로 구분된 값 중 2번째 값을 month에 저장

 

 

 

 

 

 

'🐍 Python' 카테고리의 다른 글

pandas의 DataFrame의 기본 개념  (0) 2020.06.29