작성
·
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
는 원본 데이터프레임을 수정하도록 하는 옵션입니다.
다른 문제가 있으시다면 언제든지 도움을 주세요. 감사합니다!