결측치 확인
DataFrame.isna() 결측치에 대해 True, 아니면 False
DataFrame.isnull() DataFrame.isna()와 동일함
DataFrame.notna() 결측치가 아닌 것에 대해 True, 결측치면 False
DataFrame.notnull() DataFrame.isnull()과 동일함
DataFrame.isna().sum() 결측치에 대해 컬럼별 개수
데이터 종류 확인
주로 범주형 데이터에 사용함
Series.unique(): 결측치를 포함하며 중복을 제외한 데이터 종류를 ndarray로 반환
Series.value_counts(): 결측치를 포함하지 않으며, 데이터 종류별 개수를 Series로 반환
ex)
1. 대륙 종류 알아보기
df['대륙'].unique()
2.대륙별 개수 알아보기
pd.Series(df['대륙'].unique())
3.결측치 집계하기
df.isna().sum()
4.결측치 데이터만 출력하기
df[df['대륙'].isna()]
결측치 처리
해결방법
-'NA'를 NaN로 읽는 동작 멈추기
pd.read_csv(파일이름, na_filter=False)
: 옵션으로 결측치 읽어오는 것을 멈추게 함
-결측치를 다른 값으로 채우기
DataFrame.fillna(값) 또는 Series.fillna(값)
:결측값을 특정 값으로 채우기
DataFrame.loc[Series.isna(), 컬럼명] = 값
1. 방법 1
read_csv의 na_filter 옵션으로 해결
-실행
temp = pd.read_csv('data.csv', na_filter=False)
-확인
temp['continent'].unique() #대륙에 포함된 값의 종류를 unique를 사용해 확인
temp.isna().sum() #na 값을 확인
2. 방법2
NaN으로 읽어온 데이터를 NA로 변경
-실행
df['대륙'] = df['대륙'].fillna('NA')
df.loc[df['대륙'].isna(), '대륙'] = 'NA'
df = df.fillna('NA')
-확인
df.isna().sum() #df['대륙'].fillna('NA')만 썼을 땐 23개, df['대륙'] = df['대륙'].fillna('NA') 코드로 갱신을 해야 0으로 바뀜
df['대륙'].unique()
'Engineer Big Data Analysis > Pandas 기본' 카테고리의 다른 글
[암기용] pandas 필수 문법2 (0) | 2023.06.19 |
---|---|
[암기용] pandas 필수 문법 (2) | 2023.06.18 |
Pandas - 4. 여러 개 파일 합치기 (0) | 2023.06.02 |
Pandas- 3. 컬럼 추가 & 그룹별 통계치 (0) | 2023.06.01 |
Pandas-2.통계값 구하기 (0) | 2023.06.01 |