단어 추출 도구 v0.42 배포: Bug fix

지난 번 배포한 단어 추출 도구 v0.41에 버그가 있었다. KeyError: “Column(s) [‘DBSchema’] do not exist” 오류가 발생하는 버그를 수정한 단어 추출 도구 v0.42 를 배포한다.

관련 글: 단어 추출 도구 v0.41 배포: 단어의 DBSchema 발생 빈도 항목을 추가

김기영님이 다음과 같은 댓글로 버그를 알려왔다.

단어 추출 도구 v0.41 버그 내용
KeyError: "Column(s) ['DBSchema'] do not exist"
단어 추출 도구 v0.41 버그 내용
KeyError: “Column(s) [‘DBSchema’] do not exist”

안녕하세요!

3가지 실행 방법 중 1번인 DB comment 없이 File에서 단어를 추출하는 방식을 사용했을 때
(python word_extractor.py –in_path .\in –out_path .\out)

txt, word, ppt 모두

miniconda3\envs\wordextr\lib\site-packages\pandas\core\apply.py”, line 601, in normalize_dictlike_arg raise KeyError(f”Column(s) {cols_sorted} do not exist”)

KeyError: “Column(s) [‘DBSchema’] do not exist”

에러가 발생하면서 종료되고 있습니다.

DB comment 파일이 들어가는 2번, 3번 실행 방법은 에러 없이 작동하고 있습니다.

97번 라인에 ‘DBSchema’: [db_schema] 를 넣어보았는데 이번엔

in get_grouper raise KeyError(gpr) KeyError: ‘Word’ 라는 에러가 뜬 상황입니다.

감사합니다.

변경한 코드는 다음과 같다.

    if 'DB' in df_result.columns:
        df_group = df_result.groupby('Word').agg({
            'Word': 'count',
            'Source': lambda x: '\n'.join(list(x)[:10]),
            'DBSchema': 'nunique'
        }).rename(columns={
            'Word': 'Freq',
            'Source': 'Source',
            'DBSchema': 'DBSchema_Freq'
        })
    else:
        df_result['DB'] = ''
        df_result['Schema'] = ''
        df_result['Table'] = ''
        df_result['Column'] = ''
        df_result['DBSchema'] = ''

        df_group = df_result.groupby('Word').agg({
            'Word': 'count',
            'Source': lambda x: '\n'.join(list(x)[:10])
        }).rename(columns={
            'Word': 'Freq',
            'Source': 'Source'
        })

column 목록에 ‘DB’가 있을 때와 없을 때를 나누어 처리하도록 했다.

단어 추출 도구 v0.42 소스코드 전체는 다음 URL에서 확인할 수 있다.

https://github.com/DAToolset/ToolsForDataStandard/blob/main/WordExtractor/word_extractor.py

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

ko_KR한국어