pandas는 boolean 연산을 지원하기 때문에 column별 apply를 적용하여 데이터를 다루면 실행시간이 훨씬 빠르며 코드가 간단하다.
다중컬럼을 적용하는 방법은 몇 가지가 있지만 가장 직관적이며 기억하기 쉬운 방법을 소개하고자 한다.
1. 다중 컬럼(multiple columns)에 apply 사용하기
다음과 같은 데이터가 있다고 하자.
data = pd.DataFrame( {'a':['A','A','B','B','B','C'],
'b':[1,2,5,5,4,6],
'c':[-1,3,-3,2,5,6] })
a b c
0 A 1 -1
1 A 2 3
2 B 5 -3
3 B 5 2
4 B 4 5
5 C 6 6
이때 항목 $b,c$가 모두 양수인 데이터만 남기고 싶다고 하자. $b$와 $c$ 컬럼을 모두 불러와서 True, False로 데이터를 걸러주면 된다.
data.apply(lambda row: True if (row['b'] > 0 and row['c'] >0 ) else False, axis=1)
0 False
1 True
2 False
3 True
4 True
5 True
dtype: bool
원래 data에 적용해주면 원하는 다중컬럼 조건에 해당하는 데이터를 걸러서 얻을 수 있다.
data[data.apply(lambda row: True if (row['b'] > 0 and row['c'] >0 ) else False, axis=1)]
a b c
1 A 2 3
3 B 5 2
4 B 4 5
5 C 6 6
728x90
'python 메모' 카테고리의 다른 글
[tqdm] tqdm에서 새로운 라인 없이 한 라인으로 출력하기 (2) | 2021.03.24 |
---|---|
[numpy] stack 결과 (0) | 2021.03.17 |
[pandas] 배열에 포함된 row만 남기기 (0) | 2021.03.15 |
[pandas] groupby를 활용한 그룹별 데이터 목록 리스트화 (0) | 2021.03.10 |
jupyter notebook 자주 쓰는 명령어 (0) | 2020.07.27 |