def age_group(age):
if age < 30:
return '20s'
elif age < 40:
return '30s'
else:
return '40s+'
df['age_group'] = df.apply(lambda row: age_group(row['age']), axis=1)
apply는 pandas에서 제공하는 메서드(Method)입니다.
메서드는 객체의 속성(attribue)를 조작하거나 객체 내부의 상태를 변경하는데 사용됩니다.
기본적으로 데이터프레임이나 시리즈의 column에 함수를 적용하며,
axis를 설정하여 row방향으로 함수를 적용할 수도 있습니다.
[열에 함수 적용하기]
def capitalize_name(name):
return name.capitalize()
df['name'] = df['name'].apply(capitalize_name)
일반적으로 column 별로 함수를 적용합니다.
위와 같이 capitalize 함수를 커스터마이징 하여 생성한 함수를 apply에 적용할 수 있습니다.
[행에 함수 적용하기]
def age_group(age):
if age < 30:
return '20s'
elif age < 40:
return '30s'
else:
return '40s+'
#df['age_group'] = df['age'].apply(age_group)
df['age_group'] = df.apply(lambda row: age_group(row['age']), axis=1)
axis를 사용하여 행별로 apply를 적용한 예시 입니다.
하지만 저는 df['age'].apply를 적용하는 코드 형식이 결과는 동일한데 더 편한 것 같습니다.
'하루 티끌 > [Python] 라이브러리, 매소드,내장함수' 카테고리의 다른 글
| 정보 링크(23.08.03) (0) | 2023.04.18 |
|---|---|
| help(print) (0) | 2023.04.18 |