Pandas: thresh와 함께 dropna()를 사용하는 방법
dropna() 함수를 사용하여 누락된 값이 포함된 Pandas DataFrame에서 행을 제거할 수 있습니다.
thresh 인수를 사용하여 행이나 열이 DataFrame에 유지되어야 하는 NaN이 아닌 값의 최소 개수를 지정할 수도 있습니다.
실제로 임계값 인수를 사용하는 가장 일반적인 방법은 다음과 같습니다.
방법 1: NaN이 아닌 값이 최소 개수인 행만 유지
#only keep rows with at least 2 non-NaN values df. dropna (thresh= 2 )
방법 2: NaN이 아닌 값의 비율이 최소인 행만 유지
#only keep rows with at least 70% non-NaN values df. dropna (thresh= 0.7 * len (df. columns ))
방법 3: 최소 개수의 NaN이 아닌 값이 있는 열만 유지
#only keep columns with at least 6 non-NaN values df. dropna (thresh= 6 ,axis= 1 )
방법 4: NaN이 아닌 값의 최소 비율을 포함하는 열만 유지
#only keep columns with at least 70% non-NaN values df. dropna (thresh= 0.7 * len (df), axis= 1 )
다음 예에서는 다음 pandas DataFrame에서 실제로 각 메서드를 사용하는 방법을 보여줍니다.
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, np.nan, 19, 14, 14, 11, 20, np.nan], ' assists ': [5, np.nan, np.nan, 9, np.nan, 9, 9, 4], ' rebounds ': [11, np.nan, 10, 6, 6, 5, 9, np.nan]}) #view DataFrame print (df) team points assists rebounds 0 A 18.0 5.0 11.0 1 B NaN NaN NaN 2 C 19.0 NaN 10.0 3D 14.0 9.0 6.0 4 E 14.0 NaN 6.0 5 F 11.0 9.0 5.0 6G 20.0 9.0 9.0 7H NaN 4.0 NaN
예 1: NaN이 아닌 값이 최소 개수인 행만 유지
다음 구문을 사용하여 NaN이 아닌 값이 2개 이상 있는 DataFrame의 행만 유지할 수 있습니다.
#only keep rows with at least 2 non-NaN values df. dropna (thresh= 2 ) team points assists rebounds 0 A 18.0 5.0 11.0 2 C 19.0 NaN 10.0 3D 14.0 9.0 6.0 4 E 14.0 NaN 6.0 5 F 11.0 9.0 5.0 6G 20.0 9.0 9.0 7H NaN 4.0 NaN
인덱스 위치 1 의 행은 전체 행에서 NaN이 아닌 값이 하나만 있었기 때문에 제거되었습니다.
예 2: NaN이 아닌 값의 비율이 최소인 행만 유지
다음 구문을 사용하여 NaN이 아닌 값이 70% 이상인 DataFrame의 행만 유지할 수 있습니다.
#only keep rows with at least 70% non-NaN values df. dropna (thresh= 0.7 * len (df. columns )) team points assists rebounds 0 A 18.0 5.0 11.0 2 C 19.0 NaN 10.0 3D 14.0 9.0 6.0 4 E 14.0 NaN 6.0 5 F 11.0 9.0 5.0 6G 20.0 9.0 9.0
인덱스 위치 1 과 7 의 행은 NaN이 아닌 값으로 값의 70% 이상을 포함하지 않았기 때문에 제거되었습니다.
예시 3: 최소 개수의 NaN이 아닌 값이 있는 열만 유지
다음 구문을 사용하여 NaN이 아닌 값이 6개 이상 있는 DataFrame의 열만 유지할 수 있습니다.
#only keep columns with at least 6 non-NaN values df. dropna (thresh= 6 ,axis= 1 ) team points rebounds 0 A 18.0 11.0 1 B NaN NaN 2 C 19.0 10.0 3D 14.0 6.0 4E 14.0 6.0 5 F 11.0 5.0 6G 20.0 9.0 7 H NaN NaN
“지원” 열은 해당 열에 NaN이 아닌 값이 6개 이상 포함되어 있지 않았기 때문에 제거되었습니다.
예 4: NaN이 아닌 값의 최소 비율이 포함된 열만 유지
다음 구문을 사용하여 NaN이 아닌 값이 70% 이상인 DataFrame의 열만 유지할 수 있습니다.
#only keep columns with at least 70% non-NaN values df. dropna (thresh= 0.7 * len (df), axis= 1 ) team points rebounds 0 A 18.0 11.0 1 B NaN NaN 2 C 19.0 10.0 3D 14.0 6.0 4E 14.0 6.0 5 F 11.0 5.0 6G 20.0 9.0 7 H NaN NaN
“지원” 열은 NaN이 아닌 값이 70% 이상 포함되지 않았기 때문에 제거되었습니다.
참고 : pandas dropna() 함수에 대한 전체 문서는 여기에서 찾을 수 있습니다.
추가 리소스
다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
Pandas: dropna()를 사용한 후 인덱스를 재설정하는 방법
Pandas: 특정 열에 dropna()를 사용하는 방법
Pandas: 여러 조건에 따라 행을 삭제하는 방법