함수 매핑이란?
- 시리즈 또는 데이터프레임의 개별 원소를 특정 함수에 일대일 대응시키는 과정을 뜻한다.
- 사용자 지정함수, 무명함수 등을 적용할 수 있기 때문에 판다스 기본 함수로 처리하기
어려운 복잡한 연산을 판다스 객체에 적용하는 것이 가능하다.
쓰이는 함수
- 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 |
---|