본문 바로가기
공부 목록/IT & 프로그래밍

Value must be either numerical or a string containing a wildcard 에러

by 독학박사 2023. 7. 13.

목차


     파이썬을 이용하여 데이터 분석을 하기 위해 pandas pd.read_excel()이나 pd.read_csv() 함수를 이용하게 되는데, 가끔씩 우리가 알지 못하는 에러들이 발생하곤 합니다. 프로그램의 오류인지 파일의 오류인지  확인이  되는 이러한 에러 자주 발생할  있는 에러에 대해 조치 방법을 설명드리려고 합니다.

     

     

    pd.read_excel() 에러
    pd.read_excel() 에러

     

    1. Value must be either numerical or a string containing a wildcard ?

     해당 에러는 pd.excel('testfile.xlsm) 실행해서 생긴 에러입니다. 에러의 내용을 그대로 해석해 보면 값은 숫자나 와일드카드가 포함된 문자열이어야 한다.’입니다. 읽으려는 엑셀 파일의 값에 대해 잘못된 것이라는 의미입니다.

     

    실제 발생된 에러 메세지
    실제 발생된 에러 메세지

     

     pd.excel() 함수에는 dtype이란 인수가 있어 이를 조정해 보려고 했으나 해결되지 않았고 결국 파일에 문제가 있을 수 있다고 판단했습니다.

     

     

     

    2. 원인 파악하기

     엑셀 파일을 작성하면서 분석 및 sorting 등을 위해 맨 위의 행에 필터를 걸었다면 해당 해러가 발생할 수 있습니다. 필터를 걸었어도 값을 숨기지 않았다면 에러가 발생하지 않을 텐데, 이러한 에러가 발생했다면 엑셀 파일의 데이터 중 일부가 필터로 인해 숨김 처리가 됐을 가능성이 높습니다. 

     

     

    3. 문제 해결하기

     간단한 필터링의 경우 필터를 해제하는 방법이 있습니다. 만일 데이터 개수와 칼럼의 개수가 많아 어떤 것을 숨겼는지 알지 못한다면 필터 전체를 제거해야 합니다. 어떠한 데이터도 숨겨있지 않은 상태로 저장하고 다시 pd.read_excel()을 실행해 보시기 바랍니다.

     

     필터링 한 채로 데이터를 사용해야 할 때는 전체 데이터를 불러온 후 파이썬에서 필터링을 해줘야 합니다. 조금의 수고가 들어가겠지만 데이터 분석 시 파일 호출의 기본은 원본 그대로 불러오는 겁니다. 실제 데이터든 가공 데이터든 간에 원본 그대로의 데이터를 불러와 전처리하는 습관이 들어야 합니다.

     

     

    4. 마치며

     파이썬에서 pandas의 read_excel() 함수를 이용하여 엑셀 파일을 부를 때 발생할 수 있는 'Value must be either numerical or a string containing a wildcard' 에러에 대해 알아보았습니다. 에러의 발생 원인은 엑셀 파일 내 데이터가 필터링으로 숨겨져 있어 파이썬에서 인식하지 못하는 것이었습니다. 엑셀 파일의 데이터를 불러올 때는 파일 내 데이터가 가공되지 않은 상태로 사용해야 하고 굳이 데이터를 가공해야 한다면 파이썬으로 불러온 후 전처리 로직으로 진행해야 합니다.