1. 결측값(NULL, NaN)
- 비어 있는 값. 즉, 결측값이라고 부름
- pandas에서는 NaN(Not a Number)로 표기 된 것은 모두 결측값으로 취급
- 결측값 확인하기
# 원래 테이블 확인
df
# 비어있는 값 확인(비어있는 값 = true) _ Boolean 값은 뜨지 않음
df.isnull()
df.isna()
![]() ![]() |
- '키'열에서 null 값인 행 찾기
df['height'].isna()
df[df['height'].isna()]
df[df['height'].isna()]['name']
df[df['height'].notnull()]
![]() |
![]() |
- 문제: 회사가 있는 연예인의 이름, 회사, 키를 출력
# 회사가 있는 연예인의 이름, 회사, 키를 출력
# 단, loc를 사용
df.loc[df['company'].notnull(), ['name', 'company', 'height']]
![]() |
2. fillna() : Null값을 채워주는 함수
- fillna()로 Null 값 채워주기
#null 값 확인
df['height']
# null값에 0이 들어감
df['height'].fillna(0)
# df에 반영하지 않음
# df 자체가 바뀌는 것은 아님
# 반영 할라면
df['height'].fillna(0, inplace=True)
![]() ![]() * 반영하기 df['열'].fillna(바꿀 값,inplace=True) 실행x:실제로 표가 바뀌기 때문에 보통 복사해서 실행함 |
- null 값에 중간값 넣기
# 원본 데이터프레임 `df`의 복사본을 생성하여 원본이 변경되지 않도록 합니다.
df_copy = df.copy()
# 복사된 데이터프레임의 'height' 열의 평균 값을 계산하고 출력합니다
height = df_copy['height'].mean()
height
# 'height' 열에서 누락된 값(NaN)을 계산된 평균 값으로 대체한 후 출력합니다.
df_copy['height'] = df_copy['height'].fillna(height)
df_copy['height']
* 중간값 * null 값 중간값으로 변경 ![]() |
- null값에 중위값 넣기
# 원본 데이터프레임 `df`의 복사본을 생성하여 원본이 변경되지 않도록 합니다.
df_copy = df.copy()
height = df_copy['height'].median() #50%값, 중위
height
df_copy['height'].fillna(height, inplace=True)
df_copy['height']
![]() |
3. dropna(): 결측값이 있는 행/열 제거
- 결측값이 한개라도 있는 경우 삭제
- dropna()를 사용하여 결측값이 있는 행, 열 제거
# 원본 데이터프레임 `df`의 복사본을 생성하여 원본이 변경되지 않도록 합니다.
df_copy = df.copy()
# 결측값이 있는 행을 제거
df_copy.dropna() # axis=0 (행 삭제 생략)
# 결측값이 있는 열을 제거
df_copy.dropna(axis=1)
![]() ![]() |
'데이터분석 > 판다스' 카테고리의 다른 글
06. 데이터프레임 합치기 (0) | 2024.05.24 |
---|---|
05. 그룹, 중복값제거 (0) | 2024.05.24 |
04. 행, 열 추가 삭제, 통계함수 (0) | 2024.05.24 |
02. 데이터 정보, 정렬, 범위, 인덱싱 (0) | 2024.05.24 |
01. 판다스(Pandas) (0) | 2024.05.22 |