LoginSignup
1
0

More than 3 years have passed since last update.

IQ Bot:明細の不要な行を除外する/明細を条件抽出する

Last updated at Posted at 2020-07-24

帳票例:明細の不要な行を除外する/明細を条件抽出する

IQ Botで取得したテーブルから、以下のように不要な行を除外する方法を考えてみましょう。
不要な行の削除.jpg

実装例

上記の帳票から「伝票合計」の行を除外するカスタムロジックの実装例は、以下のとおりです。

明細の不要な行を除外するための実装例
# 値を保存する変数: 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を思い通りに使い倒してみてください!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0