파이썬 팁

파이썬] 예외처리 방법 예시 - try except

gomming 2020. 9. 26. 00:47

 

파이썬 코딩에서 예외처리는 어찌보면 필수적인 내용 중 하나인데요.

예외처리를 하게 되면 프로그램이 유연해지며 쉽게 원하는 작업을 하도록 할 수 있습니다. 그리고 좀 더 완성도 있는 프로그램을 만들 수 있게 되죠.

 

아래 아주 간단한 예시를 통해 설명 해봤으니 보시고 참고하세요 ! .!

 

#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 이렇게 숫자로 에러가 발생된 행의 인덱스를 출력하도록 합니다.

 

결과는 에러가 나지않고 실행되며 프린트가 잘 되는걸 확인할 수 있습니다.

 

 

 

 

대표사진 삭제

사진 설명을 입력하세요.