pandas || df.dropna () 부족한 값 삭제 작업

df.dropna() 함수는 dataframe 데이터에서 누락된 데이터를 삭제하는 데 사용됩니다. 즉, NaN 데이터를 삭제하는 데 사용됩니다.
공식 함수 설명:

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
 Remove missing values.
 See the User Guide for more on which values are considered missing, 
 and how to work with missing data.
Returns
 DataFrame
 DataFrame with NA entries dropped from it.
매개변수 설명:
Parameters
설명
axis
0 은 행 1 은 열, default 0, 데이터 삭제 차원
how
{'any','all'},default'any','any:nan이 있는 줄을 삭제합니다.all:nan인 줄 삭제
thresh
int, 최소 int 비nan 행 보존
subset
list, 특정 열에 값 부족 처리
inplace
bool, 원본 파일 수정 여부
테스트:

>>>df = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],
          "toy": [np.nan, 'Batmobile', 'Bullwhip'],
          "born": [pd.NaT, pd.Timestamp("1940-04-25"),
              pd.NaT]})

>>>df
    name    toy    born
0  Alfred    NaN    NaT
1  Batman Batmobile 1940-04-25
2 Catwoman  Bullwhip    NaT
하나 이상의 요소가 없는 행을 삭제합니다.

>>>df.dropna()
   name    toy    born
1 Batman Batmobile 1940-04-25
하나 이상의 요소가 없는 열을 삭제합니다.

>>>df.dropna(axis=1)
    name
0  Alfred
1  Batman
2 Catwoman
모든 요소에서 누락된 행을 삭제하려면 다음과 같이 하십시오.

>>>df.dropna(how='all')
    name    toy    born
0  Alfred    NaN    NaT
1  Batman Batmobile 1940-04-25
2 Catwoman  Bullwhip    NaT
최소 2개의 비NA 값의 행만 유지:

>>>df.dropna(thresh=2)
    name    toy    born
1  Batman Batmobile 1940-04-25
2 Catwoman  Bullwhip    NaT
특정 열에서 누락된 값을 찾습니다.

>>>df.dropna(subset=['name', 'born'])
    name    toy    born
1  Batman Batmobile 1940-04-25
원본 데이터 수정:

>>>df.dropna(inplace=True)
>>>df
   name    toy    born
1 Batman Batmobile 1940-04-25
이상
추가 정보: Pandas의 Dropna 누락 데이터 필터링
약속:

import pandas as pd
import numpy as np
from numpy import nan as NaN
누락된 데이터 필터링
pandas의 디자인 목표 중 하나는 데이터가 부족한 작업을 더욱 쉽게 처리하는 것이다.pandas는 데이터가 부족한 태그로 NaN을 사용합니다.
dropna를 사용하면 부족한 데이터를 필터하는 것이 더욱 편리합니다.

1. Series 객체 처리


**dropna()**를 통해 누락된 데이터 필터링:

se1=pd.Series([4,NaN,8,NaN,5])
print(se1)
se1.dropna()
코드 결과:

0  4.0
1  NaN
2  8.0
3  NaN
4  5.0
dtype: float64
0  4.0
2  8.0
4  5.0
dtype: float64
부울 시퀀스를 통해서도 필터링할 수 있습니다.

se1[se1.notnull()]
코드 결과:

0  4.0
2  8.0
4  5.0
dtype: float64

2. DataFrame 객체 처리


DataFrame 객체를 처리하려면 NaN 또는 일부 NaN을 모두 버려야 할 수도 있으므로 복잡합니다.

df1=pd.DataFrame([[1,2,3],[NaN,NaN,2],[NaN,NaN,NaN],[8,8,NaN]])
df1
코드 결과:
0


0
1.0
2.0
3.0

NaN
NaN
2.0

NaN
NaN
NaN

8.0
8.0
NaN
기본적으로 NaN이 포함된 모든 필터링:

df1.dropna()
코드 결과:
0


0
1.0
2.0
3.0
**how='all'** 전체 NaN 행 필터링:

df1.dropna(how='all')
코드 결과:
0


0
1.0
2.0
3.0

NaN
NaN
2.0

8.0
8.0
NaN
axis=1 필터 열 가져오기:

df1[3]=NaN
df1
코드 결과:
0



0
1.0
2.0
3.0
NaN

NaN
NaN
2.0
NaN

NaN
NaN
NaN
NaN

8.0
8.0
NaN
NaN

df1.dropna(axis=1,how="all")
코드 결과:
0


0
1.0
2.0
3.0

NaN
NaN
2.0

NaN
NaN
NaN

8.0
8.0
NaN
thresh = n 개 이상의 비NaN 데이터가 있는 행을 유지합니다.

df1.dropna(thresh=1)
코드 결과:
0



0
1.0
2.0
3.0
NaN

NaN
NaN
2.0
NaN

8.0
8.0
NaN
NaN

df1.dropna(thresh=3)
코드 결과:
0



0
1.0
2.0
3.0
NaN
이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.만약 잘못이 있거나 완전한 부분을 고려하지 않으신다면 아낌없이 가르침을 주시기 바랍니다.

좋은 웹페이지 즐겨찾기