본문 바로가기

Pandas/응용

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

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

 

 

 

데이터 불러오기

 

 

 

데이터 살펴보기

 

 

총 891행, 15열

 

컬럼의 자료형도 확인할 수 있다.

 

 

 

함수 정의

 

count_missing 함수는 데이터프레임의 컬럼별 null의 개수를 구한다.

 

 

 

우선 결과부터 보자

 

잘 나온 것을 볼 수 있다.

 

시리즈로 리턴이 되었으니, applymap은 이용할 수 없다.

 

 

 

그렇다면 pipe를 이용해도 될까?

 

pipe를 이용해도 동일한 결과가 나왔다.(?)

 

 

 

이제 하나하나 뜯어서 보자.

 

apply

 

bool_df가 구해지는 것을 하나의 컬럼씩 떼어서 보았다.

(하나의 컬럼 = 시리즈 = 벡터 => 파라미터를 vec로)

 

survived 컬럼의 null 확인을 위해 bool_df_s라는 변수로 만들었고

 

결과는 T/F의 시리즈가 나왔다.

 

 

 

bool_df_s의 값들의 합을 구하기 위해 np.sum을 이용했고

 

모두 더하면 0이 된다. 

 

즉 null이 없다는 것이다.(모두 False)

 

이렇게 한 컬럼씩 함수를 적용하는 것이 apply이며

 

단일 값들을 모아 하나의 시리즈로 리턴하게 된다.

 

 

 

 

이제 pipe를 보자

 

 

pipe는 데이터프레임 객체를 받기 때문에 count_missing(d_frame)으로 바꿔줬다.

 

또한 pipe는 각 시리즈별로 isnull()을 보지 않고

 

df전체를 한꺼번에 보기에

 

bool_df를 한번에 isnull() 메서드로 적용했다.

 

 

 

np.sum과 axis=0(디폴트)를 이용하면 각 컬럼별 합을 구할 수 있다.

 

즉, 이는 pipe과 관련없이,

 

sum을 했기 때문에 각 컬럼별로 합이 구해진 것이다.

 

 

따라서 apply를 쓰든 pipe를 쓰든 결과는 동일하게 된다.

 

 

 

 

그렇다면 매번 결과가 같을까?

 

아니다. 아니다의 근거는 다음 포스팅에서 설명!

반응형