파이썬 코딩에서 예외처리는 어찌보면 필수적인 내용 중 하나인데요.
예외처리를 하게 되면 프로그램이 유연해지며 쉽게 원하는 작업을 하도록 할 수 있습니다. 그리고 좀 더 완성도 있는 프로그램을 만들 수 있게 되죠.
아래 아주 간단한 예시를 통해 설명 해봤으니 보시고 참고하세요 ! .!
#try except 예외 처리 예시
import pandas as pd
import numpy as np
a_array = np.random.randint(1,10, size=(10,3))
print (a_array)
a_df = pd.DataFrame(a_array,columns = ['Id','N1','N2'])
print (a_df)
우선 위와 같이 데이터를 만들어 봅니다.
np.random.randint 라는 넘파이 기능을 이용하여 1이상 10만의 수를 무작위로 뽑아 10행 3열의 배열을 생성합니다.
pd.DataFrame 이라는 판다스 라이브러리의 기능으로 위 배열을 데이터프레 형태로 구조화할 수 있습니다.
보통 텍스트로 되있는 데이터들이 이와 같은 구조로 되있는데요
python 으로 돌려보면
b_array = np.random.randint(1,10, size=(10,2))
b_df = pd.DataFrame(b_array, columns=['Id','N1']
여기에 하나의 배열을 더 만들어서 합쳐 봅니다.
b 배열은 2열 10행의 구조를 갖고 있습니다.
c_df = pd.merge(a_df,b_df, how="outer"); c_df
위 코드로 두 데이터 프레임을 구조에 관계없이 연결할 수 있습니다.
#데이터프레임합치기 #판다스 #pandas
이렇게 b 배열은 열이 하나 부족해서 NaN으로 처리 됩니다.
그러면 이걸 다시 for 문으로 불러오는 과정으로 에러를 내보도록 하겠습니다.
c_ar = np.array(c_df); c_ar.shape
D = []
for i in range(c_ar.shape[0]):
D.append(int(c_ar[i][2]))
위에 합쳐진 배열은 숫자와 NaN이 함께 섞여 있는데요
위 값들을 정수로 D배열에 추가하려고하면 NaN때문에 ValueError가 발생합니다.
그러면 여기에 try except 구문으로 예외 처리를 해보겠습니다.
D = []
for i in range(c_ar.shape[0]):
try:
D.append(int(c_ar[i][2]))
except ValueError:
print('Hello Gomming No.%s'%i)
D
NaN이 포함된 3열을 D에 정수로서 추가하도록 하고 에러가 나면 Hello Gomming No.11 이렇게 숫자로 에러가 발생된 행의 인덱스를 출력하도록 합니다.
결과는 에러가 나지않고 실행되며 프린트가 잘 되는걸 확인할 수 있습니다.
대표사진 삭제
사진 설명을 입력하세요.
'파이썬 팁' 카테고리의 다른 글
파이썬 - 거북이로 그림을 그리는 Turtle 모듈 소개 (0) | 2020.09.27 |
---|---|
파이썬] TKinter GUI 만들기 4화 - 메뉴 탭, 상단 메뉴 만들기 - Menu, Notebook (0) | 2020.09.27 |
파이썬으로 게임을 만들 수 있다고? pygame 1탄: pygame 설치 및 기본기능 알아보기 (0) | 2020.09.26 |
비주얼스튜디오 코드(vscode) 다중 블럭 들여쓰기, 내어쓰기 단축키 (3) | 2020.09.26 |
파이썬 코드 실행시간 측정방법 - timeit (0) | 2020.09.26 |