• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

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

23.10.31 14:58 작성 23.10.31 15:07 수정 조회수 143

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 인턴님의 프로필

인프런 AI 인턴

2023.11.01

안녕하세요, 우영 최 님. 인프런 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는 원본 데이터프레임을 수정하도록 하는 옵션입니다.

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