#帳票例:明細の不要な行を除外する/明細を条件抽出する
IQ Botで取得したテーブルから、以下のように不要な行を除外する方法を考えてみましょう。
#実装例
上記の帳票から「伝票合計」の行を除外するカスタムロジックの実装例は、以下のとおりです。
明細の不要な行を除外するための実装例
# 値を保存する変数: table_values
#表の操作をするときに必ず入れるコード(最初)
import pandas as pd
df = pd.DataFrame(table_values)
#############################################
# ↓↓↓ ここからが今回の処理 ↓↓↓
#############################################
#品名欄に「伝票合計」が含まれる行を除外する
df = df[~df['品名'].str.contains("伝票合計")]
#############################################
# ↑↑↑ ここまでが今回の処理 ↑↑↑
#############################################
#表の操作をするときに必ず入れるコード(最後)
table_values = df.to_dict()
おまじないコード以外の部分はたった1行、非常にシンプルですね。
#応用例
上記の例の df = df[~df['品名'].str.contains("伝票合計")]
の部分を変えると、色々と応用が効きます。
例えば以下の要領です。
明細の条件抽出:さまざまな応用例
#もとのコード:「品名」の列に「伝票合計」を含んで”いない”行だけを抽出(~が否定を表す)
df = df[~df['品名'].str.contains("伝票合計")]
#上記とは逆に、「品名」の列に「伝票合計」を含む行だけを抽出する場合(否定の~を削除)
df = df[df['品名'].str.contains("伝票合計")]
#「税区分」の列が「外税」の行だけを抽出
df = df[df['税区分'] == "外税"]
#「税率」の列が空欄 "ではない" 行だけを抽出
df = df[df['税率'] != ""]
上記の応用例や、pandasの解説記事(例えばこんなの)を参考に、みなさんもぜひIQ Botを思い通りに使い倒してみてください!