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

인덱스 위치 17 의 행은 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: 여러 조건에 따라 행을 삭제하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다