単語抽出ツール v0.42 展開: Bug fix

Time For Change
ソース: https://pixabay.com/images/id-3842467/

前回配布した単語抽出ツール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コメントなしで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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ja日本語