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 カスタムロジック(Python):差し替え処理をループで効率化

Posted at

除外処理置換処理に関するループを使った効率化を立て続けに解説してきましたが、すごく似たパターンで「差し替え」についてもループで効率化する方法を解説します。

##「差し替え」とは?

これはプログラミング用語じゃないです。
こちらの記事で紹介しているような、「ある文字列が含まれていたら、別の文字列に置き換える」という処理です。

置換の応用ですね。

##「差し替え」をループで使う場面は?

たとえば「請求書の明細に略称で書かれてくる部門名を正式名称にしたい」とか、「注文書の明細に略称で書かれてくる商品名を正式名称にしたい」とか、そんな場面が該当すると思います。

##ズバリ、やりかた!(フィールド項目編)

差し替え@フィールド項目
sashikae_list = (("これが含まれていたら1","これに差し替えてね1"),
               ("これが含まれていたら2","これに差し替えてね2"),
               ("これが含まれていたら3","これに差し替えてね3"))

for i in sashikae_list:
  if i[0] in field_value:
    field_value = i[1]

解説は置換編のこのあたりを参照してください。ほぼ同じ仕組みです。

##ズバリ、やりかた!(テーブル編)

差し替え@テーブル
sashikae_list = (("これが含まれていたら1","これに差し替えてね1"),
               ("これが含まれていたら2","これに差し替えてね2"),
               ("これが含まれていたら3","これに差し替えてね3"))

def table_sashikae(x,y): 
    for i in y:
        if i[0] in x:
            x = i[1]
    return x
        
df['列名'] = df['列名'].apply(table_sashikae,y=sasihkae_list)

##以上!

いかがでしたか?

今回は、仕組みとしては差し替えの処理を、置換のループと同じ構造で処理しているだけなので、あまり解説を厚くしていません。

ご質問がある方は、この記事にコメントをお寄せいただくか、TwitterのDMにてご連絡ください。

※ 上記は毎日チェックできているわけではないため、回答に時間がかかる場合があります。
  IQぼっちをリアルにご存じの方は、仕事用のメールに質問をください。

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?