데이터 전처리에서 중요하다고 할 수 있는 부분이다. 이 부빈을 간과하고 데이터 분석을 시작하면 클래스나 함수를 만들때 꼬이는 경우가 발생한다.
특히나 다 만들고 나서 데이터를 불러와 무언가를 하려고 할때 오류가 발생하고, 해당 오류가 Nan 때문인 경우가 대다수였다
그래서 무언가를 하기 전에 해당 작업을 통해 Nan이 있는지 없는지 파악하는것이 정말 중요하다
#1. Nan Checking
df['순이익률(%)'].hasnans # Series에 nan 값이 있는지 없는지 확인
df['순이익률(%)'].isnull() # 어느 Index에 Nan값이 있는지 없는지 확인
df['순이익률(%)'].isnull().any()
df['순이익률(%)'].isnull().sum() #Nan값이 총 몇개 있는지 확인(Nan값은 True로 반환되며 핪이 Nan의 총 갯수)
df.isnull().head() #DataFrame 전체에 Nan값이 있는지 없는지 확인
a = df.isnull()
a.any(axis = 0) # 전체의 DataFrame기준 Columns별로 Nan값이 있는지 없는지 확인
df.isnull().any().any() #전체의 DataFrame기준 Nan값이 있는지 없는지 확인하는 방법 있으면 True 반환
df.isnull().any().all() #전체의 DataFrame기준 Nan값이 있는지 없는지 확인하는 방법 있으면 False 반환
# DataFrame이 같은지 확인하려면 equals를 사용
df['b'].equals(df1['b'])
# Example
_df = pd.DataFrame({'a':[1, np.nan, 3], 'b':[np.nan, 2, 3]})
_df.head()
_df['a'].notnull() # 'a' column에 Index별로 nan값이 아닌것이 없는지 확인
_df['b'].notnull() # 'b' column에 Index별로 nan값이 아닌것이 없는지 확인
_df[ _df['a'].notnull() & _df['b'].notnull() ] # 'a'와 'b' column에 nan값이 아닌 Index의 값 추출
_df.dropna() #nan 값이 있는 index제거
_df.dropna(subset=['a']) #'a' column에서 nan값이 있는 행 제거
'Python > Pandas' 카테고리의 다른 글
Pandas _ qcut(균할분등) & groupby() (0) | 2021.01.11 |
---|---|
Pandas _ Category using .loc & cut Method (0) | 2021.01.05 |
Pandas _ 1. 추출(정렬) _ 2. Boolean Selection _ 3. isin() (0) | 2021.01.03 |
Pandas _ Sort (0) | 2021.01.02 |
Pandas _ describe, rename, unique, value_counts 메소드 (0) | 2021.01.02 |