IQ Bot:明細の下X桁を小数として扱う


実務で扱う帳票の中には、以下のように、罫線の位置が小数点を表しているケースがあります。

このようなケースも、IQ Botのカスタムロジックを使えば処理できます。

サンプルコード

カスタムロジック(小数点付加)の実装例

# 値を保存する変数: table_values
#表の操作をするときに必ず入れるコード(最初)
import pandas as pd
df = pd.DataFrame(table_values)

#############################################
# ↓↓↓ ここからが今回の処理 ↓↓↓ 
#############################################

import re

def decimalAdd(num, digit):  
  num = re.sub("\\D","",num)
  seisu = str(num)[:-digit]
  shosu = str(num)[-digit:]
  result = str(seisu) + "." + str(shosu)
  return result

df["単価"] = df["単価"].apply(decimalAdd,digit=2)

#############################################
# ↑↑↑ ここまでが今回の処理 ↑↑↑
#############################################    

#表の操作をするときに必ず入れるコード(最後)
table_values = df.to_dict()

応用例

上記のサンプルコードの細かい説明は省きますが、応用する場合に変える必要があるのは以下の部分だけです。

カスタムロジック(小数点付加)の実装例
df["単価"] = df["単価"].apply(decimalAdd,digit=2)

変更箇所は2か所。

  1. "単価"の部分を処理したい列名に変えます。(2つあるので2つとも)
  2. digit=2は、下2桁を小数とみなすという意味です。下3桁を小数にしたい場合は、digit=3というふうに変えます。

コードの意味がどうしても気になる人は……

以下の記事を読みながら上記のコードを眺めてみると、意味がわかると思います。