본문 바로가기
python

[Python][Pandas] 함수 매핑

by hits_gold 2021. 5. 1.
반응형

함수 매핑이란?

 - 시리즈 또는 데이터프레임의 개별 원소를 특정 함수에 일대일 대응시키는 과정을 뜻한다.

 - 사용자 지정함수, 무명함수 등을 적용할 수 있기 때문에 판다스 기본 함수로 처리하기 

   어려운 복잡한 연산을 판다스 객체에 적용하는 것이 가능하다.

 

쓰이는 함수

 - apply(), applymap(), pipe()

 

 

목차

 1. 객체의 개별원소에 함수 매핑

 2. 시리즈 객체에 함수 매핑

 3.  데이터프레임 객체에 함수 매핑

 

1. 객체의 개별원소에 함수 매핑

(1) 시리즈 객체의 원소에 함수 매핑

      본 글에서는 데이터프레임을 열을 가져와 함수를 매핑한다.

 

      -  기본 형식

     - 적용

우선 seaborn 라이브러리의 titanic 데이터 셋을 가져와 데이터프레임을 만든다.

 

인자에 +10을 해주는 add라는 함수를 생성한 후, 기본 형식에 따라 apply()함수를 써 데이터프레임의 한 열에 적용시킨다. 결과는 각 원소에 +10해준 시리즈객체가 df의 age열로 대체된다. 또는

와 같이 무명함수로도 적용시킬 수 있다.

 

(2) 데이터프레임 원소에 함수 매핑

     - 기본 형식

     - 적용

아까 만들어뒀던 데이터프레임 df에 기본 형식에 따라 add함수를 매핑한 결과 df의 모든 원소에 +10이 되어 함수가 매핑되었다.

 

 2. 시리즈 객체에 함수 매핑

  (1) 데이터프레임의 각 열에 함수 매핑

     - 기본형식

여기서 axis = 0은 행을 의미하는데, 열에 함수 매핑 하는데 axis = 0인 이유는 각 행들을 비교 또는 연산하는 함수가 있다고 하면, 각 열별로 가지고 있는 행들 간의 함수 적용이여서라고 이해했다.

 

     - 적용

 axis = 0 을 생략하고 함수를 매핑한 결과, 각 열별로 함수가 적용되어 각 열들의 최대값 - 최소값이 데이터가 되고, 열들이 행인덱스가 되는 시리즈가 생성되었다. 따라서 행들 간의 함수적용이 열별로 결과값이 나와 열에 함수가 매핑되었다고 이해할 수 있다. 

 

3. 데이터프레임 객체에 함수 매핑

     - 기본 형식

     - 적용

 isnull().sum()이라는 데이터프레임의 누락데이터 개수를 열별로 나타내주는 함수를 pipe()함수를 통해 매핑한 결과가 잘 나타나었다.

 

 

내 생각

 - apply함수와 applymap의 차이를 생각해보니, apply는 객체보다 한 차원 낮은 객체(시리즈 -> 원소, 데이터프레             임 -> 시리즈)에 함수가 매핑되고, applymap은 데이터프레임 -> 원소로 함수를 매핑하기위한 것이라고 이해했다.

 

     - pipe()는 유용한 함수를 여러 데이터프레임에 적용시키기 위한 함수로 이해하였다.

반응형

'python' 카테고리의 다른 글

[Python] scatter-matrix - 산점도와 히스토그램을 한 번에  (0) 2021.08.05