pandas || df.dropna () 부족한 값 삭제 작업
공식 함수 설명:
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
이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.만약 잘못이 있거나 완전한 부분을 고려하지 않으신다면 아낌없이 가르침을 주시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Pandas】DatetimeIndex란? no.29안녕하세요, 마유미입니다. Pandas에 대한 기사를 시리즈로 작성하고 있습니다. 이번은 제29회의 기사가 됩니다. 에서 Pandas의 시간에 대한 모듈에 대해 씁니다. 이번 기사에서는, 「DatetimeIndex」...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.