필터링은 데이터 분석가를 위해
raw data를 필터링하는
핵심 키 작업 중 하나입니다.
이번 포스팅에서는 pandas에서
사용할 수 있는 다양한
필터링 방법을 설명 하도로 하겠습니다.
코드를 쉽게 재현할 수 있도록
필터링 작업에
가장 유명한 Titanic 데이터 세트를
사용했습니다.
import pandas as pd
titanic = pd.read_csv("D:/titanic.csv")
titanic.head()
조건을 사용한 행 필터링
1) Location (loc) function
여기에서는 3등석 승객만
필터링하기 위해 pandas location functiond을
사용하겠습니다.
titanicPclass3 = titanic.loc[titanic["Pclass"] == 3]
titanicPclass3.head()
2) Query Function
query() 함수는 부울 표현식으로 D
ataFrame의 열을 필터링하는 데 사용됩니다.
쿼리 기능을 사용하여 남성 승객만
나열해 보겠습니다.
titanicMan = titanic.query("Sex == 'male'")
titanicMan.head()
3) DataFrame에서 직접 필터링
loc 메서드 대신
데이터 프레임 방식을 사용하여
살아 있는 여성 승객을 필터링합니다.
titanicAliveWoman = titanic[(titanic.Survived == 1) & (titanic.Sex == "female")]
titanicAliveWoman.head()
4) 행 위치 및 열 이름으로 DataFrame 필터
처음 10개 행과 Pclass 및 Name 열만
필터링하겠습니다.
titanic.loc[titanic.index[0:10] , ["Pclass","Name"]]
5) Lambda 함수를 사용하여 조건에 따라 행 필터링
Fare가 7.0000보다 큰 행을
필터링하겠습니다.
titanic.loc[lambda titanic: titanic["Fare"] > 7.0000]
6) 다른 열의 조건을 기반으로 한 열 값 필터링
도시가 "Southampton" 이고(Embarked == "S"),
생존한 'Survived' 값이 1과 같지 않은 열 필터링
titanic.loc[(titanic.Survived != 1) & (titanic.Embarked == "S")]
7) "~" 연산자 활용
"~" 연산자를 사용하여
"Name"에 'Mr' 호칭이 없는 열 필터링
temp = titanic[~titanic["Name"].str.contains("Mr")]
temp
8) Pandas 데이터 프레임에서 누락되지 않은 데이터 필터링
Age에 결측치가 없는 행 필터링
nonMissingDataAge = titanic[titanic.Age.notnull()]
nonMissingDataAge
9) 필터링을 위한 List Comprehension Method
생존하지 못한 남성의 행 필터링
titanic.iloc[[idx for idx, row in titanic.iterrows() if row["Sex"] == "male" and row["Survived"] == 0]]
이번 포스팅에서는 필터링에 대한
매우 기본적인 인사이트를 주었다고 생각하지만,
여전히 날짜와 시간을 필터링하는 내용은
놓친 부분이 많습니다.
다음번 포스팅에서는
이와 관련된 내용을 추가할게요.
반응형
'Python > Pandas' 카테고리의 다른 글
데이터 랭글링(데이터 분석을 위한 15가지 Pandas 기능) (0) | 2023.02.24 |
---|---|
Python-Pandas 함수 및 메서드(30) (0) | 2022.09.18 |
알아두면 유용한 pandas 단편 정보들 (0) | 2022.06.30 |
Map(), Apply(), ApplyMap() 함수 사용 방법 (0) | 2022.06.11 |
Pandas 데이터를 그룹화하는 가장 좋은 방법(groupby, Grouper) (0) | 2022.06.01 |
댓글