파이썬

자료를 불러오고 편집해보자

이석사 중 2021. 9. 30. 11:40
728x90

저번에 포스팅 했던 코랩을 이용해서

파이썬의 다양한 라이브러리를 통해

자료를 시각화 해보려고 합니다

과가 대기과이다 보니까 자료의 양이 매우 방대합니다

과거 강수량이나 일사량, 일기도 등 이런 지표들의 자료가 많이 축적이 되어있습니다

이 지표들을 통해 앞으로의 날씨를 예측하는 것이

예보관이 하는 일이기도 합니다

위 사진은 파이썬에서 제공하는 다양한 라이브러리들입니다

상위 라이브러리로 갈수록 훨씬 어렵고 복잡한 작업을 수행합니다

저희는 자료를 정리하거나 시각화하는 작업을 할겁니다

이때 필요환 라이브러러리를

Numpy, 주로 배열이나 행렬을 만드는 선형대수학과 관련된 라이브러리

Matplotlib, 주로 데이터로 그래프를 그려서 자료를 시각화하는 라이브러리

Pandas, 주로 시계열 자료나 데이터세트, 테이블을 수정하거나 조작하는 라이브러리

이렇게 3가지의 라이브러리를 사용할 겁니다

먼저 저번 포스팅에서 했던 것 처럼 마운트를 먼저 해줍니다

저는 행정안전부에서 제공하는 인구수 자료를 이용했습니다

행정안전부 - 정책자료 - 주민등록 인구통계 탭으로 들어가면 이런 화면이 나옵니다

제가 빨간색으로 네모친 곳에 전체 읍면동현황을 체크하시고

꼭 csv파일로 다운로드하셔야 합니다

다운로드하신 파일을 구글드라이브에 업로드해 주시면 됩니다

먼저 라이브러리들을 불러오겠습니다

가져온 라이브러리들은 총 5개로

csv, matplotlib 중 pyplot, numpy, pandas, pandas 중 dataframe 입니다

csv는 csv 파일을 읽기 위해 불러온 것이고 dataframe은 두번째 그래프의 입력될 값을

변형하기 위해 불러왔습니다

위 사진은 제가 구성한 코드입니다

먼저 f라는 변수에 연령별인구현황_월간.csv라는 파일을 열게 해둡니다

마지막에 encoding을 꼭 해야합니다 인코딩을 하지 않으면

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc7 in position 1: invalid continuation byte

오류가 뜨게 됩니다

코랩은 기본 파일 방식이 utf-8 방식을 사용합니다

하지만 utf-8은 한글을 지원하지 않습니다

저희가 가져온 파일들은 모두 한글로 구성되어있기 때문에 인코딩으로 바꿔야합니다

인코딩에도 2가지 방식이 있습니다

'euc-kr'과 'cp949'방식인데요 cp-949방식이 euc-kr에 상위호환이니 cp949로 하는 것이 좋습니다

euc-kr로 해도 오류는 뜨지 않지만 표시가 되지 않는 글자들이 있을 수 있습니다

data라는 변수에 csv파일을 읽는 함수를 사용하여 f를 읽습니다

결과는 공란으로 result에 할당합니다

다음은 조건문 부분 입니다

name이라는 변수에 '인구 구조가 알고 싶은 지역의 이름(읍면동 단위)를 입력하세요 : '라는

따옴표 안에 메세지를 함께 출력 시키며 사용자가 입력하는 input 값을 받습니다

csv 파일은 엑셀과 비슷하지만 다른 점이 존재합니다

차이점이 많이 존재하지만 이 중에 가장 큰 차이점은

엑셀은 워크시트에 모든 값들이 입력되어 있는 이진 파일입니다

저장이나 작업 수행이 가능한 파일 형태입니다

저희가 엑셀에서 보는 셀들이 놓여 있는 창 하나를 워크시트라고 합니다

반면 csv는 comma seperated values의 약자로

일련의 값들이 콤마로 구분되어 있는 단순한 텍스트 파일 입니다

하지만 구글 드라이브에서 csv파일과 xlsx파일을 실행시켜보면

모두 구글 gsheet로 똑같이 표현됩니다

이 둘은 같아보여도 엄연히 다르기 때문에 주의해야 합니다

xlsx파일은 원래 표현되는게 맞고 csv는 콤마로 구분되고 줄 바꿈의 개념도 존재하기 때문에

편의상 엑셀과 같은 형태로 보여줍니다

그렇기 때문에 csv파일에도 row와 column이 존재합니다

조건문의 처음부분을 보면 row변수에 위에서 할당시킨 data변수를 순서대로 넣습니다

만약 name변수에 입력된 input 값이 row 0번째 즉, gsheet에서 A열에 있다면

그 A열의 값을 조건문을 통해 i에 3열부터 자료가 입력되어 있는 마지막 열까지

순서대로 대입을 한다는 말입니다

그리고 결과 값에 i의 값을 하나씩 나열합니다

하지만 꼭 자료형을 int, 즉 정수 형태로 바꿔주어야 하는대요

처음 파이썬은 1450 이런 숫자를 정수형태가 아닌 1, 4, 5, 0 이 나열된 문자열로 보기 때문입니다

그리고 i는 아까 row의 값이기 때문에 list형태로 나옵니다

리스트는 모두 ,로 구분을 하기 때문에 콤마를 replace를 이용해서 띄어쓰기 한칸으로 구분을

하도록 바꿨습니다

 

글이 길기 때문에 읽기 힘드신 분은 아래 사진을 봐주시기 바랍니다

글이 너무 길어질 것 같아서

2편으로 나누어서 포스팅 하겠습니다

다음 포스팅에는 본격적으로 시각화를 하는 라이브러리인 matplotlib를 이용해서

시각화를 해보겠습니다

728x90

'파이썬' 카테고리의 다른 글

작업 2 : Folium으로 울진 산불 지도에 표시해보기  (0) 2022.03.22
Matplotlib를 시작해보자  (0) 2021.11.02
내 파이썬 목표  (0) 2021.10.05
Colab을 이용해보자  (0) 2021.09.30
VSCODE를 이용해보자  (0) 2021.09.30