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 テーブルの空欄を埋める

Last updated at Posted at 2020-07-20

IQ Botを使って、空欄行を埋めるやりかたを解説します。

##イメージ

以下のような処理を行います。
01_空欄埋めイメージ.jpg

##やりかた

テーブルに対するカスタムロジックを使って、以下のように処理します。

空欄埋めのカスタムロジック実装例

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

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

#日付の空欄埋め
vDate = ""
for i in range(len(df)):
  if df.at[str(i),"日付"] != "":
    vDate = df.at[str(i),"日付"]
  else:
    df.at[str(i),"日付"] = vDate

#伝票番号の空欄埋め
vDenpyoNo = ""
for i in range(len(df)):
  #df.at[str(i),"伝票番号"] = "aaa"
  if df.at[str(i),"伝票番号"] != "":
    vDenpyoNo = df.at[str(i),"伝票番号"]
  else:
    df.at[str(i),"伝票番号"] = vDenpyoNo  

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

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

##解説

上記のカスタムロジックを読んで、何をやっているか想像がついた方は、解説は読み飛ばしてOKです。

###処理のポイント
上記の日付、伝票番号とも、処理の仕組みとしてはまったく同じことをやっています。
日付なら日付、伝票番号なら伝票番号の列を1行ずつ読んでいき、値が入っていればそれを変数に格納し、空欄であれば変数の値を代入するという処理です。

空欄埋めのカスタムロジック抜粋

#日付の空欄埋め
vDate = ""                         # 変数の初期化
for i in range(len(df)):           # 抽出結果のテーブルを1行1行処理する(処理中の行をi番目とする)
  if df.at[str(i),"日付"] != "":   # i番目の行の日付欄の値が空欄でなかったら(★)
    vDate = df.at[str(i),"日付"]   #  → 変数に日付欄の値を入れる
  else:                            # ★以外の場合(=i番目の行の日付欄の値が空欄だったら)
    df.at[str(i),"日付"] = vDate   #  → 変数の値で日付欄を埋める

###応用ポイント

上記のロジックを自分の業務に当てはめて応用したい場合、基本的に変える部分はdf.at[str(i),"日付"]の中の"日付"の部分だけでOKです。

この部分を、自分が処理したいIQ Botのテーブル項目名に変えます。

IQ Botの項目名にスペースが含まれている場合は、スペース部分はアンダースコア(_)に置き換えます。

「伝票番号」という項目に対して処理したい場合はdf.at[str(i),"伝票番号"]に、
「明細 消費税」という項目に対して処理したい場合はdf.at[str(i),"明細_消費税"]に変えるという要領です。

上記の例のvDatevDenpyoNoはただの変数名なので変えなくても動きますが、見た目のわかりやすさを考えると、しかるべき名前に変えておいた方がいいでしょう(消費税欄ならvTaxなど)。

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?