고객번호가 문자열일 때 처리하는 방법
from datetime import datetime
def calculate_age_from_id(id_number):
if isinstance(id_number, str) and len(id_number) >= 2: # 문자열인지 및 앞 2자리 확인
two_digit_year = int(id_number[:2]) # 주민등록번호의 앞 2자리
current_year = datetime.today().year
current_century_year = int(str(current_year)[-2:]) # 현재 연도의 마지막 두 자리
# 출생 연도를 2000년대와 1900년대로 구분하여 계산
if two_digit_year <= current_century_year:
base_year = 2000 + two_digit_year
else:
base_year = 1900 + two_digit_year
age = current_year - base_year
return age
else:
return None # NaN 또는 유효하지 않은 값 처리
# '고객번호' 컬럼을 기반으로 '연령' 컬럼 추가
df['연령'] = df['고객번호'].apply(calculate_age_from_id)
# NaN 값을 0으로 대체한 후 연령대 구분값을 계산하여 '연령대' 컬럼 추가
df['연령대'] = (df['연령'].fillna(0) // 10).astype(int)
'데이터핸들링 > 데이터전처리' 카테고리의 다른 글
[SQL] Window 함수 사용법 (2) | 2024.11.19 |
---|---|
[Python, 구글스프레드시트] 날짜 형식 변경 (0) | 2024.11.16 |
[Python] merge,concat 데이터 join하기(=합치기) feat. 이제 행 중복 오류를 곁들인... (0) | 2024.10.30 |