데이터 프레임을 실행할때 문자열 데이터를 활용하여 함수를 적용하고 그 값을 다시 새로운 컬럼에 적용할 수 있다. 이때 pandas는 하나하나 일일이 하던 기존 방식과 다르게 데이터 프레임내에 데이터 전체에 함수를 적용하여 빠른 작업을 할 수 있다.
함수 적용 방법은 크게 2가지가 있다.
1. apply 함수를 이용하는 방법
pandas내에 apply 함수를 이용하여 함수를 적용 시킬수 있다. 이때 주의 할점은 변수가 앞에 들어가는 파이썬 기본 함수 가 아닌 함수는 적용할 수 없다. 대신 자신이 def함수를 이용해 정의한 함수들은 적용이 가능하다.
import pandas as pd
#데이터 프레임 생성
df = pd.DataFrame({'Employee ID':[111, 222, 333, 444],
'Employee Name':['Chanel', 'Steve', 'Mitch', 'Bird'],
'Salary [$/h]':[35, 29, 38, 20],
'Years of Experience':[3, 4 ,9, 1]})
df
데이터 프레임을 생성한뒤 여기에 직원 이름의 글자수를 세어 새로운 컬럼 length를 만든다.
# Employee Name의 이름의 문자 갯수를 구해서.
#새로운 컬럼 length 에 저장하세요.
df['length'] = df['Employee Name'].apply( len )
df
빨간색 부분에 length칼럼이 추가 된것을 알 수 있다.
다른 예제로 def로 정의된 함수를 적용한 데이터를 알아보자
#맨위에 데이터 프레임 활용
#시급이 30 이상이면, A라고하고,
#그렇지 않으면 B라고 구분해서
#처리해달라
# 1. 함수를 만든다. 시급 정보가 입력되면 A인지B인지를 리턴하는 함수
def grouping(salary):
if salary>= 30:
return "A"
else:
return 'B'
grouping(20)
>>> 'B'
#정의된 grouping 함수
# 2. 위에서 민든 함수를, 데이터 프레임의 salary[%/h] 컬럼에 저장된
# 데이터들에 모두 적용해야 한다.
df['Salary [$/h]'].apply(grouping)
>>> 0 A
1 B
2 A
3 B
Name: Salary [$/h], dtype: object
2. pandas의 str 라이브러리를 이용하는 방법
pandas내에 str라이브러리를 이용하면 문자열 데이터를 다루는 함수를 함수 상관없이 적용할수 있다. 이 방법의 장점은 변수가 필요한 함수도 적용 가능하다는 장점이 있다.
#데이터 프레임은 맨위 참고
#판다스의 str 라이브러리를 이용한 방법
# Employee Name 의 이름을 모두 대문자로 바꿔서
#새로운 컬럼 upper_name 이라는 컬럼으로 저장해 주세요.
df['Employee Name'].str.upper()
>>> 0 CHANEL
1 STEVE
2 MITCH
3 BIRD
Name: Employee Name, dtype: object
반응형
'파이썬 함수' 카테고리의 다른 글
pandas 라이브러리(8) 데이터 합치기 (0) | 2022.11.25 |
---|---|
pandas 라이브러리(7) 데이터 정렬 SORTING AND ORDERING (0) | 2022.11.25 |
pandas 라이브러리(5) PANDAS OPERATIONS (0) | 2022.11.24 |
pandas 라이브러리(4) 카테고리컬 데이터( Categorical Data) (0) | 2022.11.24 |
pandas 라이브러리(3) NaN값 다루기 (0) | 2022.11.24 |