파이썬/파이썬(python) 중급

[25-1 파이썬] csv 내장라이브러리로 CSV파일 다루기

Olivia-BlackCherry 2022. 9. 4. 19:54

오늘은 csv데이터를 가지고 데이터 파일을 읽고, 분석하는 방법을 배울 것이다. 

 

1. csv파일이란?

Comma Separated Values

표형태이다. spread sheet같은 표들에 적합한 데이터이다.

엑셀파일을 생각하면 된다. 

데이터는 comma , 로 연결되어 있다.

 

컴퓨터 엑셀파일로 보면 이런 형태이지만,

파이참에서 csv 파일을 보면 ,로 연결되어 있는 것을 알 수 있다. 

 

 

2. readlines() 사용

파일을 한줄씩 리스트 형태로  불러오기

with open("weather_data.csv") as data:
    day_weather = data.readlines()
print(day_weather)

그런데 그냥 불러오니

데이터를 그대로 쓰기가 불편해보인다. 

리스트 안의 요소가 , 로 연결되어 있기 때문에 

더 손질할 것들이 보인다.

한 단계 더 거쳐야 쓸 수 있는 데이터가 되겠다.

 

 

3. csv 내장 라이브러리 활용

다행히도

파이썬은 csv 데이터를 효율적으로 처리할 수 있도록

내장 라이브러리를 가지고 있다. 

이를 이용해 데이터를 살펴보자. 

import csv

with open("weather_data.csv") as data:
    day_weather = csv.reader(data)
print(day_weather)

 

읽어진 데이터는 객체는 iterable하여 반복문을 돌려 각 행의 데이터를 한 줄씩 볼 수 있다.

import csv

with open("weather_data.csv") as data:
    day_weather = csv.reader(data)
    for row in day_weather:
        print(row)

각 요소들은 하나의 값으로 분리되어 있다. 

데이터를 작업하는 것이 쉬워졌다. 

 

 

 

여기서 temperature 온도 데이터만 따로 모아서 리스트를 만들어보자.

temperature = []
with open("weather_data.csv") as data:
    day_weather = csv.reader(data)
    for row in day_weather:
        temperature.append(row[1])
    print(temperature)

 

문제가 2가지 발생한다. 

temp 문자는 삭제하고,  int함수로 정수형으로 타입을 변경한다. 

 

 

temp 문자를 삭제하는 방법으로 두 가지를 제안한다.

1) pop()

import csv

temperature = []
new_temperature=[]
with open("weather_data.csv") as data:
    day_weather = csv.reader(data)
    for row in day_weather:
        temperature.append(row[1])
temperature.pop(0)
for temp in temperature:
    temp = int(temp)
    new_temperature.append(temp)
print(new_temperature)

2) if문

import csv

temperature = []
with open("weather_data.csv") as data:
    day_weather = csv.reader(data)
    for row in day_weather:
        if row[1] != "temp":
            temperature.append(int(row[1]))
print(temperature)

 

csv 내장라이브러리도 유용하지만,

다음 시간에는 더 복잡한 데이터도 간단히 처리할 수 있는

판다스로 데이터를 분석하고 처리해보겠다.