INPUT | USE | RETURN |
시리즈 원소 | apply | 단일 값, 시리즈 |
시리즈 객체 (데이터프레임의 행 or 열) | 단일 값, 시리즈, 데이터프레임(통합) | |
데이터프레임의 원소 | applymap | (동일한 형태의)데이터프레임 |
데이터프레임 객체 | pipe | 단일 값, 시리즈, 데이터프레임 |
데이터 불러오기
apply 적용할 함수 생성하기
시리즈별로 null 유무를 판단하고 null 개수의 합을 구하는 함수
기존 포스팅에선 열별로 누락값의 합을 구했다.
이번엔 행별로 구해보자
axis=1을 하면 행별로 누락값의 개수를 구하게 된다.
인덱스는 기존의 행이며 나오는 값은 누락값의 개수이다.
시리즈가 나오게 된다.
위 시리즈를 변수에 넣고 새로운 컬럼으로 추가해보자
맨 오른쪽 컬럼에 행별 누락값의 개수를 넣은 열이 추가됐다.
행별 누락값이 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라는 옵션을 이용할 수도 없다.
단지 데이터프레임의 원소에 어떤 작업을 하고
동일한 크기의 데이터프레임을 리턴할 뿐이다.
간단한 예시.
'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 |