[파이썬 머신러닝] 2. 판다스(2)- 데이터 셀렉션 및 필터링

2021. 1. 25. 21:30프로그래밍-AI & 빅데이터/머신러닝

1. [ ] 의 사용

 

넘파이와 달리 판다스는 괄호안에 index가 아닌 컬럼명만 기입이 가능하다

 

조건을 통해 데이터를 가져올수도있다

 

2. 인덱싱

 

기존의 ix[ ]는 명칭(label) 기반 인덱싱인데, 이는 가독성이 떨어져 deprecated되었다

특히 dataframe의 기본 인덱싱은 명칭기반이지만, 행의 인덱스가 integer인 경우 사용자가 혼란스럽게 된다.

따라서 위치기반 인덱싱인 iloc[ ] , loc[ ]를 사용한다

 

 

0행의 sex라는 컬럼의 데이터를 찾고 싶다고 하여도, iloc는 오직 위치만 변수로 허용한다

loc[ ] 의 경우는 label인 경우만 허용한다

따라서 본문의 예시에서는 iloc[0,4]로 데이터를 찾지만, 인덱스가 'a'와 같이 label로 표기된 경우는 loc ['a','name']으로 찾는다

ix[ ] 는 위치, 명칭 기반 인덱싱으로 혼란을 가져오는 부분이 있다

 

 

3. boolean 인덱싱

 

조건을 설정하면 그것에 해당하는 dataframe을 모두 리턴한다

 

원하는 컬럼만 셀렉션할 수 있다. 이때 loc 연산자를 사용해도 되고, 위치로 접근해도 된다.

 

조건문은 복합적으로 연산이 가능하다.  or는 |, not 은 ~ 을 사용한다

 

4. 정렬, Aggregation, GroupBy

 

정렬은 sort_values를 사용한다. 

옵션에 (by=['정렬기준'], ascending=false)를 처리하면 내림차순이 된다.

정렬기준은 2개 이상도 가능하다

 

aggregation의 연산자는 다양하다

위의 예시처럼 컬럼을 지정하고 mean(), max(), min(), sum() 등의 다양한 연산을 하면 된다.

 

GroupBy는 SQL과 같이 데이터를 묶는 기준을 설정하는 것이다.

해당 예시는 Pclass를 기준으로 각 데이터 갯수를 집계하였다

물론 GroupBy의 보편적인 사용목적에 따라, 이렇게 필요한 컬럼의 통계만 가져올 수 있다

 

count 처럼 단순한 command가 아닌 조금 복잡한 command이자, 이를 멀티 컬럼에 적용할때는 agg()를 사용한다

 

 

5. 결손데이터 

isna( ) 커맨드는 결손 데이터를 구하고 측정할 수 있다

fillna( ) 커맨드로는 이를 쉽게 대체할 수 있다