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

pepero님의 프로필 이미지
pepero

작성한 질문수

파이썬 기초 라이브러리부터 쌓아가는 머신러닝

섹션1의 마지막 강의(DataFrame에서 자주 사용하는 전처리 기법)의 오류 해결방법

작성

·

47

0

안녕하세요 거친코딩님!

우선 강의 너무 재밌게 잘 듣고 있습니다.

 

섹션 1의 마지막 강의를 듣다가 오류가 발생하는데 무엇이 원인인지 잘 모르겠어서 질문드립니다.

 

해당 강의 11분 50초에서 설명해주시는 nan_abalone_df.mean()을 하면 자꾸 타입에러가 발생합니다

TypeError                                 Traceback (most recent call last)
<ipython-input-138-677ba292c7ae> in <cell line: 1>()
----> 1 nan_abalone_df.mean()

/usr/local/lib/python3.10/dist-packages/pandas/core/nanops.py in _ensure_numeric(x)
   1676             if inferred in ["string", "mixed"]:
   1677                 # GH#44008, GH#36703 avoid casting e.g. strings to numeric
-> 1678                 raise TypeError(f"Could not convert {x} to numeric")
   1679             try:
   1680                 x = x.astype(np.complex128)
TypeError: Could not convert ['MMFMIIFFMFFMMFFMIFMMMIFFFFFMMMMFMFFMFFFMFFIIIIMFIFIMMFMFMMIFMMFMMMFFFIMFFMFFMFFFFMFMMFMMFFMMMFMMMMMFIMMMMFFFFFMMIMFFFMFMFIFMIIIIMMMFFIIFFMFMFFMMMFMIIIMFFFFMFMFFMFMFFMFFMFMFMFIIIIIMMMFFFMFFFFMMMIFMFMMMFMFFMFIIFIFMFMFMMIMFFFFFIFFIFFMMMIIIIIIIMIIIIIIIIIIMFFMMMMFFFFMIMFMMMFFMMMMMFMMFFIFMMFMFMFMFMFMIIIMMFFMMFIIMMMFMMFMIFMFIIIMIMIIMMIMFIIFMMMMFMFMFFMFIIMFFMMMMMFMFMFFFFMMFMFFFFFMFMFMFMMMMMFMMMIIMFIIIFMMMFMFFIFMMMMMMFMFFFMFMFIFIIMFMFFFMMMIMIIMMIIFIFFMMMFMFFFFMFIIFMFIIIIFMFMFFIFFMFMMMFMMFMFMFMFMMFMMFFFFMFFFFFMMMMIIFFMFMMMMFMFIMMMMFFMIFIFIIIMMFFFMMFMMMFIIIIIIIIFFIFIFFFMIIMFIIFFIFIFIFFIFIFIIFMFIFIFMIFIIFIFFIIIMIMMFMMIIMFMMMMIFFIFFFIMIFMIMMMMIFMIFMMIMMIFMIIMFMFFIFIIFFIFMFMFMFFMFFMFFFIMFMMMFFMMMIFMIIIMFFMFFMMMMFMIIMIMMIIIIIIMMMMFMFMFMMMMMMMFMMMFFFMFFMMMFMFFMMMFMMMFFMFMFMFFFIMMMMMMMFMMMIIMFMFFFFMMMMMMMFMMMIMMIFFFMFIIIIIIIIIIIIIIIIIIMIIIIIMIFIMFMMMMFFFMFMMMMFMMFFFFMFMFMFFMMFMFFMMFFFMMMMMFFFFFFMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIFIIIIIIIIIIIIFMFMFMMMMFMMMMIMMFIMIMIIMMFMFMFFMFMMFFFFMMFMMMFFFMFMMMFFFMFMFMMMMFFFMFFFMFMMMMFFFMMFMFFMMMFFFMMFMFFMMMFFMMFFMIIIIIIIIIIIIIIIIIIIIIIIIIIIMIIIIIIIIIIIIMIIIIMIIIMFIFIIIMIIFIIMIIIIMMMFFMMMFMMMFMFIFFMFMIMMMMMMMFMMMFMFMFMMFMMMMFFMMFFMMMFMMFFMMFFMIFFMFMFMMMFFFMMFFMMFMMFFMFIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIFIIIFIIIIIIIIIIIIMIMIIIIIIIIIIIIIMIIIIIIFMFIIFIIIFMIIMIIIIIFIIFMMIIFMIMFFMMMFMMIMMMMIMMFFMMIFFMIMIFFMMMIMMFMMFMMFMMFFMFFFFIMIMMFFMMMMMMMFFMMFFMFMFFFFFMMFFMMFFFMFFFFFFIIIIIIIIIIIIIIMIIIMIMIIIII...

강의를 다시 돌려보고 거친코딩님과 똑같이 코드를 쳤는데 자꾸 저 부분에서 오류가 발생하네요.

nan_abalone.df의 성별 열이 문자라서 mean함수를 호출할 수 없는 것일까요? 근데 왜 선생님 강의에서는 성별 컬럼이 존재해도 mean이 실행이 될까요..

저 부분이 안되니 당연히 nan_abalone_df.fillna(nan_abalone_df.mean())도 안되네요.. 똑같은 타입에러를 일으킵니다

 

아직 데이터 전처리 걸음마단계라 미숙하지만 잘 부탁드립니다..!

좋은 강의 감사합니다

 

답변 1

0

거친코딩님의 프로필 이미지
거친코딩
지식공유자

안녕하세요.

일단 먼저 데이터프레임의 경우,

문자열이 있더라도 연산이 가능한컬럼(int, float형)만 감지해서 찾아서 연산하도록 설계되어있습니다.

해당 에러의 원인을 저도 질문자님의 전체 코드를 확인한 것이 아니라, 정확한 원인은 찾기 어렵네요..

감사합니다.

pepero님의 프로필 이미지
pepero

작성한 질문수

질문하기