소개
이 튜토리얼에서는 판다의 DataFrame dropna()
함수를 사용하는 방법을 배우게 됩니다.
NA
값은 “사용할 수 없음”을 의미합니다. 이는 Null
, None
, pandas.NaT
, 또는 numpy.nan
에 적용될 수 있습니다. dropna()
를 사용하면 이러한 값을 가진 행과 열을 삭제할 수 있습니다. 이는 유효한 데이터만을 제공하여 도움이 될 수 있습니다.
기본적으로 이 함수는 새로운 DataFrame을 반환하며 원본 DataFrame은 변경되지 않습니다.
이 튜토리얼은 Python 3.10.9, pandas 1.5.2 및 NumPy 1.24.1로 확인되었습니다.
구문
dropna()
는 다음 매개변수를 사용합니다:
axis
:{0 (또는 'index'), 1 (또는 'columns')}, 기본값 0
0
이면 누락된 값이 있는 행을 삭제합니다.1
이면 누락된 값이 있는 열을 삭제합니다.how
:{'any', 'all'}, 기본값 'any'
'any'
인 경우 값 중 하나라도NA
이면 행이나 열을 삭제합니다.'all'
인 경우 모든 값이NA
이면 행이나 열을 삭제합니다.thresh
: (옵션) 드롭 작업에 대한 임계값을 지정하는int
값입니다.subset
: (옵션) 행 또는 열을 지정하는 열 레이블 또는 레이블 시퀀스입니다.inplace
: (옵션)bool
값입니다.True
인 경우 소스 DataFrame이 변경되고None
이 반환됩니다.
샘플 DataFrame 구성
유효하고 유효하지 않은 값이 포함된 샘플 DataFrame을 구성합니다:
이 코드는 DataFrame을 출력합니다:
OutputName ID Population Regions
0 Shark 1 100 1
1 Whale 2 200 None
2 Jellyfish 3 NaN NaT
3 Starfish 4 NaT NaT
그런 다음 추가 행과 열이 NA
값을 가진 두 번째 DataFrame을 추가합니다:
이것은 새로운 DataFrame을 출력합니다:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
2 Jellyfish 3 NaN NaT NaT
3 Starfish 4 NaT NaT NaT
4 NaT NaT NaT NaT NaT
다음 예제에서 이전 DataFrame을 사용하게 됩니다.
결측값이 있는 모든 행 삭제
None
, NaN
, 또는 NaT
값이 있는 행을 제거하려면 dropna()
를 사용하십시오:
이것은 다음과 같이 출력됩니다:
OutputName ID Population Regions
0 Shark 1 100 1
A new DataFrame with a single row that didn’t contain any NA
values.
결측값이 포함된 모든 열 삭제
axis=1
을 사용하여 None
, NaN
, 또는 NaT
값이 포함된 열을 제거하려면 dropna()
를 사용하십시오:
어떤 None
, NaN
, 또는 NaT
값이 포함된 열이 삭제될 것입니다:
OutputName ID
0 Shark 1
1 Whale 2
2 Jellyfish 3
3 Starfish 4
A new DataFrame with a single column that contained non-NA
values.
값이 모두 Null
인 경우 행 또는 열 삭제 how
두 번째 DataFrame 및 how
를 사용하십시오:
NA
와 모든 값을 가진 행이 삭제될 것입니다:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
2 Jellyfish 3 NaN NaT NaT
3 Starfish 4 NaT NaT NaT
다섯 번째 행이 삭제되었습니다.
다음으로, how
를 사용하고 axis
를 지정하십시오:
NA
와 모든 값을 가진 열이 삭제될 것입니다:
OutputName ID Population Regions
0 Shark 1 100 1
1 Whale 2 200 None
2 Jellyfish 3 NaN NaT
3 Starfish 4 NaT NaT
4 NaT NaT NaT NaT
다섯 번째 열이 삭제되었습니다.
thresh
가 교차되었을 때 행 또는 열 삭제
thresh
를 사용하여 적어도 3
개의 비-NA
값을 충족하지 않는 행을 삭제하려면 두 번째 DataFrame을 사용하십시오:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
적어도 3
개의 비-NA
값을 갖지 않는 행들이 삭제됩니다:
세 번째, 네 번째 및 다섯 번째 행이 삭제되었습니다.특정 subsets
에 대한 행 또는 열 삭제
subset
을 사용하여 Population
열에 NA
값을 갖는 행을 삭제하려면 두 번째 DataFrame을 사용하십시오:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
Population
이 NA
값을 갖는 행들이 삭제됩니다:
세 번째, 네 번째 및 다섯 번째 행이 삭제되었습니다.
DataFrame에서 열을 삭제할 때 subset
에서 index
값을 지정할 수도 있습니다:
OutputName ID
0 Shark 1
1 Whale 2
2 Jellyfish 3
3 Starfish 4
4 NaT NaT
첫 번째와 두 번째 행의 서브셋에서 NA
값을 포함하는 열들이 삭제되었습니다.
행 또는 열 삭제 후 소스 DataFrame 변경
기본적으로 dropna()
는 소스 DataFrame을 수정하지 않습니다. 그러나 경우에 따라서는 inplace
를 사용하여 큰 소스 DataFrame 작업 시 메모리를 절약할 수 있습니다.
이 코드는 dfresult
변수를 사용하지 않습니다.
다음이 출력됩니다:
OutputName ID Population Regions
0 Shark 1 100 1
원본 DataFrame이 수정되었습니다.
결론
이 문서에서는 NA
값이 포함된 행과 열을 제거하기 위해 dropna()
함수를 사용했습니다.
더 많은 Python 및 pandas 튜토리얼로 학습을 계속하세요 – Python pandas 모듈 튜토리얼, pandas 중복 행 삭제.
참고문헌
Source:
https://www.digitalocean.com/community/tutorials/pandas-dropna-drop-null-na-values-from-dataframe