파이썬으로 작업하다 보면 try~except를 자주 사용하게 된다. 에러가 발생하더라도 전체 작업이 중단되지 않게 하기 위해서인데, 문제는 이걸 여기저기 덕지덕지 사용하다 보니 나중에 디버깅을 할 때 도대체 어디서 문제가 생겼는지 한 번에 파악하기가 어려워졌다는 점이었다. 이 글에서는 내가 실제로 겪었던 방식들을 기준으로, 디버깅 과정에 조금이나마 도움이 되었던 예외 처리 방법을 정리해봤다. try~except + print(e)에러가 발생해도 코드는 계속 동작하게 두고, 어떤 에러가 발생했는지만 로그로 남기는 방법이다.def convert_to_int(value): try: return int(value) except ValueError as e: print(e) ..
Study/Python
파이썬으로 작업하던 중 “이 상황에서는 그냥 진행하면 안 되는데…” 싶은 순간에 의도적으로 에러를 발생시키는 게 필요해져서 알아보니 raise라는 문법을 발견했다. 이번 글에서는 raise의 사용 예시와 상황에 맞는 예외들을 정리해봤다 raise는 언제 쓰는 게 좋을까?raise는 “이 상태는 정상 흐름이 아니다” 라는 것을 코드로 명확히 표현할 수 있는 방법이다.입력값이 잘못됐거나, 필수 데이터가 없거나, 더 이상 처리를 진행하면 안 되는 경우에 특히 유용했다. raise 사용 예시def validate_age(age): if age 150: raise ValueError("나이는 150 이하여야 합니다.") return age조건을 만족하지 않으면 즉시 ValueError를 ..
DataFrame의 특정 열에 접근할 때 보통 row['col_name']을 사용하지만, 전처리 과정이나 외부 데이터 병합 이후 컬럼이 조건부로 생성될 수 있는 경우에는 get()이 훨씬 안전할 수 있습니다. 이번 글에서는 .get()을 사용하는 방법과 장단점을 정리해보았습니다. 함수 설명Series.get(key, default)메서드는 존재하지 않는 키(열 이름)에 접근할 경우 오류를 발생시키지 않고, 대신 기본값(default)을 반환하는 안전한 접근 방식입니다. 예시 코드import pandas as pd# 예제 데이터df = pd.DataFrame({ 'name': ['홍길동', '이몽룡', '성춘향'], 'age': [25, 27, 22]})# 존재하지 않는 컬럼을 조회할 때for..
데이터 정제 작업 중, 두 컬럼을 비교해서 한쪽이 비어 있으면 다른 값으로 채워야 할 때가 있습니다. 이때 fillna()를 주로 사용하지만, 인덱스가 다른 상황에서는 combine_first()가 더 안전한 선택입니다. 이번 글에서는 두 메서드의 차이를 예제로 비교하면서, 어떤 상황에 어떤 함수를 쓰면 좋은지 정리해보겠습니다. combine_first() 기본 개념combine_first()는 두 Series(DataFrame 포함)를 결합하여, 앞쪽 값이 결측치(NaN)일 경우 뒤쪽 값으로 채워주는 메서드입니다. 즉, "왼쪽 값을 우선 사용하고, 비어 있으면 오른쪽 값으로 보충"하는 방식으로 작동합니다. 예제 코드import pandas as pddf = pd.DataFrame({ '고객명': ..