• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    해결됨

Null 값을 평균으로 채우는 방법

23.11.02 14:01 작성 23.11.02 14:13 수정 조회수 223

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)

 

이슈 알려 주셔서 감사합니다.