PYTHON LIBRARY/Pandas Library

Pandas 데이터프레임 컬럼에 함수(문자열 전용 함수까지) 적용하기 : def와 apply() 사용법

신강희 2024. 4. 14. 01:14
728x90

< APPLYING FUNCTIONS >

# 데이터 가공할때 사용 ! => 기존의 데이터를 가지고 새로운 컬럼을 만들때 많이 사용
# 고급 함수로 데이터 분석시에 굉장히 중요한 개념

 

# 이전장 예제에서 사용하였던 데이터를 가지고 실행

 

# 시급이 30 이상이면 'A' 이고 그렇지 않으면 'B' 라고 해라. = 조건문 

// 이전 실습 예시에서 일정 수치보다 큰 데이터를 가져와라 라는것과는 다름

 

# salary >= 30 :
#    print('A')
# else :
#    print('B')

 

# 이런 결과를 얻고 싶은것이기 때문에 함수로 만들어서 사용한다.

# 예로 35인 그룹은 A로 28인 그룹은 B가 되도록 코드 블록을 만들고 싶다.

 

#get_group(35)
# 'A'

 

#get_group(28)
# 'B'

 

# 이러한 결과가 되도록 실제로 만들어 보자.

 

# 판다스의 컬럼에 적용하기 위한 함수를 작성한다.
# 함수작성은, 함수 호출을 먼저 적어놓고, 함수를 정의한다.

 

# def 로 함수를 정의하여 get_group는 호출명으로 함수를 만들어냄

def get_group(salary):
    if salary >= 30:
        return 'A'
    else :
        return 'B'

 

# 내가 만든 함수 적용해줘 .apply()

# 없는 기능이면 def를 활용하여 내가 함수를 만들어내고, 이미 존재하는 함수면 적어주면 된다.

 

df['Salary [$/h]'].apply( get_group )

0    A
1    B
2    A
3    B
Name: Salary [$/h], dtype: object

 

# 적용한 값을 원본 데이터에 집어넣어서 등급을 비교할수도 있다.

# group 라는 컬럼을 생성하여 새로 만든 함수 결과값을 집어넣어준다.

df['group'] = df['Salary [$/h]'].apply( get_group )

ㄴ 새로 집어넣은 컬럼은 제일 우측에 생성 된다.

 

# 원래 있는 함수를 적용할때는 함수명을 .apply () 안에 넣어주면 된다.

# 이름 길이라는 의미의 컬럼을 생성하고, 자체함수인 len을 적어서 원본데이터에 넣어보자.
df['name_len'] = df['Employee Name'].apply ( len )

 

< 문자열 판다스 함수 >

# 문자열만 다루는 판다스 함수가 따로 존재한다.
https://pandas.pydata.org/docs/reference/api/pandas.Series.str.upper.html 참고

 

# 대문자 .upper()

df['Employee Name'].str.upper()

0    CHANEL
1     STEVE
2     MITCH
3      BIRD
Name: Employee Name, dtype: object

 

# 문자열 개수 (길이)

df['Employee Name'].str.len()

0    6
1    5
2    5
3    4
Name: Employee Name, dtype: int64

 

다음장에서 계속

반응형