-
[파이썬] pandas 데이터프레임 속성값 바꾸기 (apply, replace)파이썬 배우기 2023. 11. 22. 15:42
데이터를 전처리할 때, 여러 속성 값들을 그룹으로 만들어서 차원을 줄인다거나, 보기 편한 값으로 치환을 하는 등 속성값을 바꿔야하는 일들이 자주 발생합니다! 그럴 때 사용할 수 있는 데이터프레임 속성값 바꾸는 세 가지 방식에 대해 소개하도록 하겠습니다.
우선 데이터프레임 안에 appy 함수가 내장되어 있습니다. 이것은 행 또는 열에 원하는 연산을 적용하는 함수입니다. numpy와 같은 다른 라이브러리의 단일 연산 함수를 사용할 수도 있고, def로 직접 정의한 함수를 넣을 수도 있고, lambda로 정의한 함수를 적용할 수도 있습니다.
1. apply(만든 함수) : 기본 단일 함수도 포함
2. apply + lambda
3. replace
이 세 가지 방법을 소개시켜드리려고 합니다. 이들은 모두 자동으로 적용되지 않아서 같은 열로 만들어서 덮어쓰거나, 열을 하나 더 만들어서 할당해줘야 합니다. replace는 여러 개를 1:1로 대응시켜서 한 번에 교체할 때 쓰면 유용하고, apply 는 추가적인 연산작업이 필요하거나 대응시킬 값이 많아서 함수로 만드는 것이 편리할 때 쓰면 좋습니다.
저에게는 결측치는 없고 1과 2로 이루어진 성별 데이터가 있었습니다. (1:남자, 2:여자)
이것이 보기에 헷갈려서 1:male, 2:female 로 바꿔보려고 합니다.
df['gender'].value_counts(dropna = False) # Result gender 1 132 2 115
1. def 로 함수를 정의한 후, 그 함수를 apply 에 넣어서 적용하자
def gender_num_to_str(data): if data == 1: return 'male' else: return 'female' df['gender_1'] = df['gender'].apply(gender_num_to_str) df['gender_1'].value_counts() # Result gender_1 male 132 female 115
2. apply + lambda
df['gender_2'] = df['gender'].apply(lambda x : 'male' if x == 1 else 'female') df['gender_2'].value_counts() # Result gender_2 male 132 female 115
3. replace
df['gender_3'] = df['gender'].replace([1, 2], ['male', 'female']) df['gender_3'].value_counts() # Result gender_3 male 132 female 115
'파이썬 배우기' 카테고리의 다른 글
[파이썬] 파이썬에서 SQL 실행하기 (sqlite3) (0) 2023.11.24 [파이썬] 결측값 처리하는 6가지 방법 (fillna, SimpleImputer) (0) 2023.11.22 [파이썬] pandas 데이터프레임 속성값 세는 두 가지 방법 (1) 2023.11.22 [파이썬] matplotlib 맥 윈도우 한글 깨짐 인코딩 처리하기 (1) 2023.11.21 [파이썬] matplotlib으로 다중 꺾은선 그래프 그리기 (1) 2023.11.21