0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-07-20

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

小数点.jpg

このようなケースも、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というふうに変えます。

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

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

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?