Programming/Pandas

[Pandas] 함수를 활용해서 데이터 변환 (map, apply, applymap)

JongHo.dev 2023. 2. 16. 16:13
728x90
728x90
SMALL

🔉 빅데이터 분석을 편리하게 해주는 파이썬 라이브러리인 Pandas에 대해 공부해보자!

https://pandas.pydata.org/

 

pandas - Python Data Analysis Library

pandas pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language. Install pandas now!

pandas.pydata.org

📝목차

1. map
2. apply
3. applymap

 

1. map

☑️ 함수를 통한 컬럼 변환 & 생성

import pandas as pd

df = pd.DataFrame({'가':[1,2,3,4,5]})
df

output:

 

def function(x): # 사용자 정의 함수
    if x == 1:
        return 'one'
    elif x == 2:
        return 'two'
    elif x == 3:
        return 'three'
    elif x == 4:
        return 'four'
    elif x == 5:
        return 'five'


df['english'] = df['가'].map(function) # map함수를 이용해 새로운 컬럼 생성

df

output:

특정 컬럼에 값을 하나씩 받아 새로운 컬럼에 함수를 적용해 알맞는 값을 넣어준다.

 

 

☑️ 딕셔너리를 전달해 컬럼 변환 & 생성

다음과 같은 데이터프레임을 만든 후 map함수를 통해 회사 이름을 한국어로 변환하는 코드를 짜보려고 한다.

tmp_list = [{'number' : 20, 'company' : 'kokoa'},
            {'number' : 32, 'company' : 'nover'},
            {'number' : 23, 'company' : 'somsang'},
            {'number' : 35, 'company' : 'pocso'}]

df = pd.DataFrame(tmp_list,columns=['number','company'])

df

output:

 

 

# 딕셔너리와 map함수 이용
df.company = df.company.map({'kokoa': '코코아','nover': '노버','somsang' : '솜삼','pocso': '포크소'})

df

output:

 

2. apply

  • map 함수와 단일 컬럼에서는 똑같이 작동하지만 다중 컬럼 같은 경우 apply만 적용가능하다.

☑️ 다중 컬럼 apply 예시

df = pd.DataFrame({'가':[1,2,3,4,5],'나':[6,7,8,9,10]})
df

output:

 

def a_m(a,b):
  return a+b, a*b

df[['add','multiply']] = df.apply(lambda x: a_m(x['가'],x['나']),axis=1, result_type = 'expand')
df

output:

3. applymap

  • applymap은 데이터프레임의 모든 값들에 함수를 적용하는 함수이다. 
df = pd.DataFrame({'가':[1,2,3,4,5],'나':[6,7,8,9,10]})
df

output:

 

df = df.applymap((lambda x : x**2)) # 모든 값 제곱

df

output:

applymap함수를 사용하니 모든 값들이 바뀐 것을 확인할 수 있다.

728x90
728x90
LIST