python pandas.DataFrame.dropna <별별정보>
pandas.DataFrame.dropna- pandas 0.23.4 document API Reference
특징
데이터프레임 안에서 Nan이 들어있는 데이터의 행이나 열을 삭제해주는 함수로 세부사항을 더 구체적으로 설정해 원하는 데이터 프레임을 만들 수 있다.변수
axis : 어떤 축을 기준으로 행이나 열을 삭제할 것인지를 정하는 변수로 default 0 세로 방향(행 방향, index 방향)을 기준으로 Nan 데이터 즉 존재하지 않는 값이 있는 행을 삭제한다. 만약 axis=1 or axis='columns'로 설정하면 가로 방향(열 방향, columns 방향)을 기준으로 nan이 있는 columns을 삭제한다.how : 어떤 방식을 선택해서 삭제할 것인지를 정하는 변수로 any와 all이 2가지 옵션이 존재한다. 말 그대로 any면 nan이 존재하는 어떠한 axis 던지 삭제이고 all은 axis 기준 nan이 모두 존재한다면 그 축 방향의 열이나 행을 삭제해준다. default는 any이다.
thresh : optional 변수로 not-nan data 즉 value 값이 존재하는 nan이 아닌 데이터가 몇 개면 삭제하지 않을 것인지를 정하는 변수이다. 가령 thresh=3으로만 변수를 설정했다면 axis 기준으로 value 값이 3개 이상 존재한다면 그 axis는 삭제하지 않는다. 그러나 value 값이 선언한 thresh에 미치지 못하는 개수라면 그 axis에 해당하는 행이나 열은 삭제한다.
subset : optional 변수로 어떤 axis를 설정했냐를 보고 그와 반대되는 축 가령 axis=0이라면 열에 대해서 axis=1이라면 index에 대해서 array를 받아 nan이 포함된 행이나 열을 삭제하는 변수이다. 자세한 내용은 아래 예를 보는 것이 좋을 것 같다.
inplace : 실제 데이터프레임에 나온 값을 저장할 것인지를 설정하는 변수로 default=0이다
설명 순서
0. 우리가 사용할 데이터프레임1. axis
2. how
3. thresh
4. subset
5. inplace
0. 우리가 사용할 데이터프레임
df1. axis
df.dropna()df.dropna(axis=0)
df.dropna(axis=1)
dropna 자체 축이 0으로 default 설정되어 있기때문에 1번과 2번 그림의 차이가 없음을 볼 수 있고 axis=1로 설정하면 가로 방향(열 방향, columns)으로 설정된다. 그러면 열에 있어서 nan 데이터가 있으면 삭제 모두 value 값들이 존재하면 그대로 유지임을 볼 수 있다.
2. how
how의 default=any. 다만 how='all'로 설정이 가능해 axis 기준 행이나 열이 모두 nan이면 삭제시킨다. 지금의 데이터프레임에는 모든 행이나 열이 nan이 없는 것이 없기때문에 기존의 데이터프레임과 차이가 없어보이지만 데이터가 많을수록 유용하게 쓸 수 있는 변수임을 인지해야한다.
3. thresh
df.dropna(axis=0,thresh=2)df.dropna(axis=0,thresh=3)
df.dropna(axis=0,thresh=4)
axis=0, thresh=N으로 설정하면 가로 방향(index)에 nan이 있다면 삭제시키되 다만 Nan이 아닌 값의 개수가 N개보다 적을 때 그 행이 삭제한다.
df.dropna(axis=1,thresh=3)
df.dropna(axis=1,thresh=4)
axis=1, thresh=N으로 설정하면 세로 방향(column)에 nan이 있다면 삭제시키되 다만 Nan이 아닌 값의 개수가 N개보다 적을 때 그 열을 삭제한다.
thresh=4의 경우 4개의 value보다 적은 'B','C'열이 삭제됨을 볼 수 있습니다.
4. subset
df.dropna(axis=0,subset=['B'])df.dropna(axis=0,subset=['B','C'])
axis=0이면 세로 방향(index 방향)이다. 그럼 이와 반대되는 축은 column이고 이를 array 형태로 적을 수 있다. subset=['B']로 설정해놓으니 B 열에서 nan이 되는 데이터 index가 사라짐을 볼 수 있다.
subset이 B,C라면 B와 C에서 nan이 있는 축 방향의 index가 사라짐을 볼 수 있다.
df.dropna(axis=1,subset=[1])
df.dropna(axis=1,subset=[1,2])