728x90
반응형
▶ 결측값 제거(dropna)
- 기본 사용법
- DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
- axis : {0: index / 1: columns} 결측치 제거를 진행할 레이블
- how : {'any' : 존재하면 제거 / 'all' : 모두 결측치면 제거} 제거할 유형
- 포함만 시켜도 제거할지, 전부 NA여야 제거할지 정할 수 있음
- tresh : 결측값이 아닌 값이 몇 개 미만일 경우에만 적용시키는 인수
- 예를들어, tresh값이 3이라면 결측값이 아닌 값이 3개 미만일 경우에만 dropna 메서드 수행
- subset : dropna메서드를 수행할 레이블 지정
- inplace : 원본을 변경할지의 여부
- 예시
col = ['col1','col2','col3','col4','col5']
row = ['row1','row2','row3','row4']
data = [[1,2,3,pd.NA,5],[6,pd.NA,8,pd.NA,10],[11,12,13,14,15],[pd.NA,pd.NA,pd.NA,pd.NA,pd.NA]]
df = pd.DataFrame(data,row,col)
>>
col1 col2 col3 col4 col5
row1 1 2 3 <NA> 5
row2 6 <NA> 8 <NA> 10
row3 11 12 13 14 15
row4 <NA> <NA> <NA> <NA> <NA>
1. axis = 0 결측치 제거
- row 값이 NA인 행 모두 제거되고 row3값만 남음
print(df.dropna(axis=0))
>>
col1 col2 col3 col4 col5
row3 11 12 13 14 15
2. how로 연산기준을 정할 경우
- how = 'any' 인 경우 한 값이라도 NA를 가진다면 해당 레이블은 제거
print(df.dropna(how='any'))
>>
col1 col2 col3 col4 col5
row3 11 12 13 14 15
- how = 'all' 할 경우 모든 값이 NA인 레이블만 제거
print(df.dropna(how='all'))
>>
col1 col2 col3 col4 col5
row1 1 2 3 <NA> 5
row2 6 <NA> 8 <NA> 10
row3 11 12 13 14 15
3. subset 인수를 통한 레이블 지정
- subset에 리스트형태의 값을 입력하거나, 해당 컬럼명을 입력하여 결측치를 제거할 레이블을 지정 할 수 있다.
print(df.dropna(subset=['col1','col2']))
>>
col1 col2 col3 col4 col5
row1 1 2 3 <NA> 5
row3 11 12 13 14 15
<출처> 위키독스를 참고하여 작성
728x90
반응형
'인공지능, 데이터분석 > [Numpy, Pandas] EDA, 문법' 카테고리의 다른 글
[Numpy] 집계함수 max(), sum().. (0) | 2023.05.11 |
---|---|
[Numpy] 넘파이 자료형의 다양한 데이터 타입 (0) | 2023.05.11 |
[빅분기] T1-3. 결측치 처리, 결측치 비율확인(map, drop 활용) (0) | 2023.01.06 |
[빅분기] T1-2. 이상치를 찾아라(소수점 나이) (0) | 2023.01.02 |
[빅분기] T1-1. 이상치를 찾아라(IQR)활용하기 (0) | 2023.01.02 |