해결된 질문
작성
·
400
·
수정됨
0
안녕하세요, 선생님.
강의 15분 경에 다음과 같은 코드가 나옵니다만, 저는 분명 동일한 코드를 실행했는데 오류가 떠서 질문드립니다.
house_df.fillna(house_df.mean(),inplace = True)
TypeError: can only concatenate str (not "int") to str
이 코드가 Null있는 문자형 열까지 포함시켜 처리하기 때문에 오류가 나는 거 같은데, 혹시 원래 정상적으로 실행되는 코드인가요…?
책에 있는 코드도 동일한데 제가 실행시키면 에러가 나서 전 Null 있는 숫자혀여 열에 대해서만 각 열의 평균값으로 결측치를 채워서 실행했습니다.
만약 현재 버젼으로 정상적으로 실행이 되지 않는 코드라면 선생님께서 혹시 이 부분에 대해서만 새로 작성하신 코드를 여쭙고 싶습니다!
방금 확인해보니까 jupyter notebook으로는 잘 실행되는데, vscode에서는 위와 같은 오류가 뜹니다. 혹시 이 오류가 뜨는 이유를 알 수 있을까요?
답변 1
2
안녕하십니까
제가 강의에서 사용한 Pandas는 위 코드와 같이 mean()을 DataFrame에 사용하면 자동으로 숫자 컬럼에 대해서만 적용되었는데, 이게 버전이 업그레이드 되면서 더 이상 이 방식으로는 적용되지 않는 군요.
아래와 같이 수정 적용해 주시면 될 것 같습니다.
# object가 아닌 number 타입을 별도 리스트로 추출
num_columns = house_df.dtypes[house_df.dtypes != 'object'].index.to_list()
# number 타입 컬럼들에 대해서 Null컬럼들은 평균값으로 대체
house_df[num_columns].fillna(house_df[num_columns].mean(),inplace=True)
이슈 알려 주셔서 감사합니다.