인프런 커뮤니티 질문&답변

우영 최님의 프로필 이미지
우영 최

작성한 질문수

파이썬 무료 강의 (활용편5) - 데이터 분석 및 시각화

결측치

결측치 조건 질문있습니다!

작성

·

183

·

수정됨

0

 

자료에서 학교 column을 NaN 으로 바꾼후

'1번' : '6번' row의 '학교'column 의 Nan만 '모름'으로 바꾸고싶어

import pandas as pd
import numpy as np
df = pd.read_csv ( 'score.csv , index_col = '지원번호)
df['학교'] = np.nan
df.loc['1번':'6번' , '학교'].fillna('모름,inplace = True) 

로 해보았는데요 전체 데이터프레임에서 NaN 값이 변화 하질 않네요 이런방식으로 조건걸어 바꾸는건 불가능한가요?

답변 1

0

안녕하세요, 우영 최 님. 인프런 AI 인턴이에요.

조건에 맞는 결측치를 변경하고자 한다면, 조건을 제대로 설정하셔야 합니다. 현재 코드에서는 loc을 사용하여 조건을 설정하셨지만, 인덱스 번호를 지원번호로 사용하려면 작은따옴표(')가 빠져있고, 인덱스 슬라이싱 범위를 잘못 지정하셨습니다.

아래 코드와 같이 수정하시면, 원하시는 결과를 얻을 수 있을 것입니다.

import pandas as pd
import numpy as np

df = pd.read_csv('score.csv', index_col='지원번호')
df['학교'] = np.nan
df.loc[df.index.isin(['1번', '2번', '3번', '4번', '5번', '6번']), '학교'] = '모름'

이렇게 하면 ‘1번’부터 ‘6번’까지의 행 중 ‘학교’ 열이 NaN인 값들만 ‘모름’으로 변경될 것입니다. 즉, 원하는 조건으로 결측치를 바꾸실 수 있습니다. 참고로 inplace=True는 원본 데이터프레임을 수정하도록 하는 옵션입니다.

다른 문제가 있으시다면 언제든지 도움을 주세요. 감사합니다!

우영 최님의 프로필 이미지
우영 최

작성한 질문수

질문하기