Pandas를 사용하여 데이터 안에서 원하는 조건에 맞는 데이터를 찾을 수 있는 필터를 작성하는 법에 대해 알아보겠습니다.

우선 people를 pandas를 사용하여 DataFrame을 짜 줍니다.
그러면 위의 표 형식으로 출력이 됩니다.
그럼 여기서 나이가 24인 row를 찾으려면 필터를 작성해 줘야합니다.
1. 필터 작성하기
(1)필터로 쓸 변수의 이름을 'filt'로 정하겠습니다.
*파이썬에는 내장 함수로 filter가 있습니다. 그래서 filter를 직접 변수로 쓰지 마시고 다른 이름들을 사용해 주시면
더 좋습니다.
(2)그리고 필터를 작성해줍니다.
데이터프레임의 이름이 df 이므로 df 안에 'age' 속성이 '24'인 row를 찾아야 합니다.
df['age'] == '24' 라고 표현할 수 있겠습니다.
(3) 위에 만든 필터를 변수 'filt'에 넣어줍니다.
(4) 그리고 df에서 'filt'조건에 맞는 값들을 찾아주기 위해 df[filt]를 실행해 줍니다.

2. df.loc[] 를 사용하여 더 상세하게 찾아 들어가기
이전 글에서 우리는 loc[]와 iloc[]의 차이점과 그리고 사용방법에 대해서 알아보았습니다.
사실 필터를 만들고 사용하는 것은 직접 그 필터를 실행해서 사용하는 것 보다 loc[]를 이용하면
더 자세하고 깊게 데이터 안을 검색할 수 있습니다.
일단 df.loc[]를 이용하여 필터를 적용하여 검색하는 방법은 그냥 필터를 사용하는 방법과 흡사합니다.
df.loc[filt]를 입력하면 아까 df[filt]를 입력했을 때와 동일한 결과값이 나옵니다.

그럼 더 깊이 들어가 보겠습니다.
조건을 추가하겠습니다.
(1)나이가 24세인 사람들의 주소만을 알고 싶다는 것은 어떻게 실행할 수 있는지 알아보겠습니다.
df.loc[filt,'address']를 작성해주시면 됩니다.
df.loc[filt]를 통해 24세 나이인 사람들의 row를 뽑아 왔다면 뒤의 ,'address'는 그 row 중에서 보고 싶은 속성을 선택하는
것입니다.

(2) 나이가 24세이고, 중동에 사는 사람의 row가 알고 싶다.
다른 프로그래밍 언어나 python을 사용해보신 분들은 익숙하실 & 과 | 가 쓰입니다.
**pandas에서는 &가 and, | 가 or 입니다.
위의 문제가 age =='24' and adress == '중동'인 조건임으로 and 자리에 &를 넣어서 필터를 작성해주시면 됩니다.
filt2 = (df['age'] == '24') & (df['address'] == '중동')
***&나 | 없이 필터를 하나의 조건식으로 작성할 때는 조건식 별로 괄호를 해줄 필요가 없으나(ex)filt=df['age']=='24')
만약 &나 |로 두개 이상의 조건식을 묶어준다면 조건식 별로 소괄호로 묶어주어야 합니다.


그렇다면 나이가 24세 이거나 중동에 사는 사람의 row를 검색하실 수도 있습니다.
or로 이어지는 조건식이기 때문에 & 대신 |을 쓰면되겠지요.


(4) 나이가 24세이거나, 중동에 사는 사람이 아닌 사람을 출력하려면?
필터를 작성하여 그 필터에 해당하지 않는 값을 검색할 수도 있습니다.
'-filt'를 사용하는 것입니다.
'-'는 빼라는 명령으로 사용됩니다. 그래서 나이가 24세이거나, 중동에 사는 사람이 아닌 사람의 이름들을 출력하려면
df.loc[-filt3,'name']을 작성해 주시면 됩니다.

다음시간에는 좀 더 커다란 데이터 내에서 검색을 어떻게 사용할 것인가에 대해서 알아보도록 하겠습니다.
긴 글 읽어주셔서 감사합니다.
'데이터분석 > Python Pandas' 카테고리의 다른 글
<Python Pandas> 5.Column 이름과 Rows 변경하기 1 (0) | 2021.08.03 |
---|---|
<Python Pandas> 4. 중간점검 공공 데이터에 적용해보기 (0) | 2021.08.02 |
pandas 사용하기 2 index 바꾸기 (df.set_index()) (0) | 2021.07.30 |
<Python> Pandas 사용하기 [list와 dictionary 자료형의 사용] (0) | 2021.07.30 |
<Python> pandas 시작하기( pandas 설치, csv 읽기,행과 열 정보 읽기, 데이터 형태 알아내기) (0) | 2021.07.29 |