IQ Botで扱うSplitについての基本は、こちらの記事に記載しています。
上記はフィールドに対するSplitのみに触れており、エラー制御なども組み込んでいないロジックだったので、ここでもう少し踏み込んで紹介します。
#Splitをテーブルに適用するロジック
例えば、フィールドであればfield_value = field_value.split("銀行")[0]
と定義するロジックをフィールドに対して適用するとどうなるかというと、こんなかんじです。
#抽象化した関数の定義
def func_split(value, splitter, index):
x = value
if splitter in value:
y = x.split(splitter)
if (len(x) + 1) >= index:
x = y[index]
return x
#関数の適用
df['列名'] = df['列名'].apply(func_split, splitter="銀行", index=0)
上記の「抽象化した関数」には、単純なスプリットだけでなく、「もとの文字列の中にそもそも『銀行』の文字が含まれているか」「splitした結果のリストに、指定したindexが存在しうるか」というチェックの処理も含まれています。
さらに、上記のチェックが否であれば、スプリット前の値をそのまま返す、という処理になっています。
なので厳密にはfield_value = field_value.split("銀行")[0]
と単純に同じ、というわけではないのですが、実務で利用するときはこんな考慮を組み込むのが通常かと思います。
##関数をフィールドに対して適用する
えっ? そのエラー制御、フィールドに対しても組み込んだ方がいいんじゃないの? と思ったそこのあなた。
おっしゃるとおりです。
その場合は、上記の func_split
を当該フィールドのカスタムロジック欄に設定した上で、以下のように関数を適用します。
#関数の適用
field_value = func_split(field_value, "銀行", 0)
##以上!
いかがでしたか?
ご質問がある方は、この記事にコメントをお寄せいただくか、TwitterのDMにてご連絡ください。
※ 上記は毎日チェックできているわけではないため、回答に時間がかかる場合があります。
IQぼっちをリアルにご存じの方は、仕事用のメールに質問をください。