본문 바로가기

Pandas/응용

판다스 - apply, applymap, pipe(응용3)

반응형
INPUT USE RETURN
시리즈 원소 apply 단일 값, 시리즈
시리즈 객체 (데이터프레임의 행 or 열) 단일 값, 시리즈, 데이터프레임(통합)
데이터프레임의 원소 applymap (동일한 형태의)데이터프레임
데이터프레임 객체 pipe 단일 값, 시리즈, 데이터프레임

 

 

데이터 불러오기

 

seaborn의 titanic 데이터

 

 

 

apply 적용할 함수 생성하기

 

시리즈별로 null 유무를 판단하고 null 개수의 합을 구하는 함수

 

기존 포스팅에선 열별로 누락값의 합을 구했다.

 

 

 

 

 

 

이번엔 행별로 구해보자

 

axis=1을 하면 행별로 누락값의 개수를 구하게 된다.

 

인덱스는 기존의 행이며 나오는 값은 누락값의 개수이다.

 

시리즈가 나오게 된다.

 

위 시리즈를 변수에 넣고 새로운 컬럼으로 추가해보자

 

row_null_count라는 변수에 넣었다.

 

 

맨 오른쪽 컬럼에 행별 누락값의 개수를 넣은 열이 추가됐다.

 

 

 

 

 

 

행별 누락값이 2개 이상인 행을 보고 싶다.

 

방법1. 데이터프레임 자체를 이용해 불린 인덱싱을 한다.

 

True/False 시리즈를 cond 변수에 넣고 

 

 

이를 df에 다시 이용하면 num_missing 컬럼의 값이 2 이상인 행만 보여준다.

 

총 160행

 

 

 

 

방법2. list와 append 이용

 

 

새 리스트를 만들고, for 구문을 이용한다.

 

num_missing 컬럼의 값이 2 이상이면 True를,

 

아니라면 False를 리스트에 넣는다.

 

이를 활용해 다시 df을 걸러준다.

 

 

똑같이 160행이 나온 것을 볼 수 있다.

 

편한 것을 이용하면 되겠으나,

 

전처리 코드가 복잡할수록 방법2를 이용하는 빈도가 많아질 수 있다.

 

 

 

 

 

 

applymap

 

지금 활용하는 함수로는 applymap을 이용할 수 없다.

(데이터프레임을 리턴해야하기 때문)

 

심지어 applymap는 axis라는 옵션을 이용할 수도 없다.

 

단지 데이터프레임의 원소에 어떤 작업을 하고 

 

동일한 크기의 데이터프레임을 리턴할 뿐이다.

 

 

간단한 예시.

 

각 원소에 2를 곱해줬다
axis 옵션을 사용할 수 없음

반응형

'Pandas > 응용' 카테고리의 다른 글

판다스 - groupby : aggregate  (0) 2020.06.22
판다스 - groupby  (0) 2020.06.22
판다스 - apply, applymap, pipe(응용2)  (0) 2020.06.21
판다스 - apply, applymap, pipe(응용1)  (0) 2020.06.21
판다스 - apply, applymap, pipe(2)  (0) 2020.06.20