1-2.CSV로 서울시 모기예보제 정보를 활용한 모기지수 데이터 처리 및 분석
지난 시간에는 데이터 분석의 정의와 중요성, 기본 프로세스에 대해 살펴보았습니다. 이번 시간에는 데이터 분석에 필수적인 도구인 CSV 파일에 대해 알아보겠습니다.
CSV(Comma-Separated Values) 파일은 데이터를 간단하게 정리하고 저장하는 데 널리 사용되는 형식입니다. 각 데이터 항목이 쉼표로 구분되어 있어, 스프레드시트 프로그램이나 데이터 분석 도구에서 쉽게 읽고 쓸 수 있습니다. CSV 파일은 텍스트 형식으로 저장되기 때문에, 다양한 플랫폼과 프로그래밍 언어에서 호환성이 높습니다.
CSV 파일의 예시
예를 들어, 간단한 학생 성적 데이터를 담고 있는 CSV 파일의 내용은 다음과 같습니다:
이름,수학,영어,과학
홍길동,85,90,88
김철수,78,82,80
이영희,92,95,94
이 파일을 사용하면 각 학생의 이름과 과목별 점수를 쉽게 관리할 수 있습니다. 이제 이러한 CSV 파일 형식을 활용하여 서울시의 모기 발생 정보를 담고 있는 모기지수 데이터를 살펴보겠습니다.
모기지수 데이터 처리 개요
모기지수 데이터는 서울시의 공식 웹사이트나 공공 데이터 포털에서 얻을 수 있습니다. 서울시에서는 모기 발생 상황 및 관련 정보를 제공하는 모기예보제를 운영하고 있으며, 해당 데이터는 일반 시민이 접근할 수 있도록 공개되어 있습니다.
특히, 서울 열린 데이터 광장(https://data.seoul.go.kr/) 같은 플랫폼에서 모기지수와 관련된 데이터를 쉽게 검색하고 다운로드할 수 있습니다. 이곳에서는 다양한 공공 데이터 세트를 제공하므로, 필요한 정보를 찾기에 유용합니다.
모기지수 데이터 구조
서울시 모기예보제에서 제공하는 모기지수 데이터는 다음과 같은 구조를 가집니다:
모기지수 발생일,모기지수(수변부),모기지수(주거지),모기지수(공원)
2024-09-07,100.0,52.0,41.6
2024-09-06,100.0,52.5,51.5
2024-09-05,100.0,52.0,53.5
이 데이터는 날짜별로 각 지역의 모기 발생 지수를 기록하고 있습니다. 이러한 정보를 활용하여 모기의 발생 추세를 파악하고, 시민들에게 유용한 정보를 제공할 수 있습니다.
2. CSV 파일 읽기 및 에러 처리
파일 읽기 시 발생하는 에러
CSV 파일을 읽으려 할 때, 다음과 같은 코드로 시작했습니다:
with open('서울시 모기예보제 정보.csv') as f:
print(f.readline())
그러나 다음과 같은 에러가 발생했습니다:
UnicodeDecodeError: 'utf-8' codec can't decode byte
에러 원인
이 에러는 CSV 파일이 UTF-8이 아닌 다른 인코딩(EUC-KR)으로 저장되어 있어 발생합니다. 따라서 파일을 올바른 인코딩으로 읽어야 합니다.
chardet을 이용한 인코딩 확인 방법
chardet
라이브러리를 사용하여 파일의 인코딩을 확인할 수 있습니다. 다음과 같은 코드로 인코딩을 확인했습니다:
import chardet
with open('서울시 모기예보제 정보.csv', mode='rb') as f:
d = f.readline()
print(chardet.detect(d))
결과는 다음과 같았습니다:
{'encoding': 'EUC-KR', 'confidence': 0.99}
이 결과는 CSV 파일이 EUC-KR로 인코딩 되어 있음을 나타냅니다.
3. 파이썬을 이용한 데이터 처리
CSV 파일 읽기
올바른 인코딩을 사용하여 파일을 읽습니다:
with open('서울시 모기예보제 정보.csv', encoding='EUC-KR') as f:
print(f.readline())
데이터 프레임 생성 및 기본 탐색
판다스를 이용하여 데이터 프레임을 생성하고, 데이터를 탐색합니다:
import pandas as pd
df = pd.read_csv('서울시 모기예보제 정보.csv', encoding='EUC-KR', low_memory=False)
print(df.head())
이 코드를 통해 데이터의 첫 몇 줄을 확인할 수 있습니다.
데이터 저장 및 불러오기
데이터 프레임을 CSV 파일로 저장할 수 있습니다:
df.to_csv('ns_202104.csv', index=False)
4. 모기지수 데이터 분석
데이터 정제 및 결측치 처리
데이터를 정제하고 결측치를 제거합니다:
df.dropna(inplace=True) # 결측치 제거
간단한 데이터 분석 및 결과 확인
데이터의 요약 통계를 출력하여 분석합니다:
print(df.describe()) # 데이터 요약 통계 출력
이번 시간에는 CSV 파일에 대해 공부하고, 모기지수 데이터를 분석하며 CSV 활용 방법에 대해서도 알게 되었습니다. 이러한 과정을 통해 데이터 처리 및 분석의 기초를 다지는 데 큰 도움이 되었습니다. 깃허브에도 올렸으니 모르는것은 들어가보시고 그래도 모르겠으면 댓글 달아주세요
https://github.com/hyoje099/-mortgages/blob/main/%EB%AA%A8%EA%B8%B0%EC%A7%80%EC%88%98.ipynb
다음시간은 api 일까요? csv로 그래프 그릴까요? 통계자료 만들까요? 예측 프로그램 만들까요?
구독이나 댓글 써주세요 ^^ 오류나 댓글 찾으시면 알려주세요