Python 「pandas」複数列を行方向に走査して、所望の文字列を検出して新規列に結果を記入する

 本記事では、下図左のように複数の列「入荷1」,「入荷2」,「入荷3」を行方向に走査して、もし「りんご」の単語があれば、下図右のように新しい列「りんご」に真偽値「True」を代入する雛形コードを載せました。

下記は、上記の処理をするpythonスクリプトです。

import pandas as pd

df = pd.read_csv('sample_data.csv', encoding='cp932')

# 行方向に「りんご」が含まれているかを示す真偽値の列を作成し、その結果を新しい列「りんご」に代入
target_str = 'りんご'
df[target_str] = (df[['入荷1', '入荷2', '入荷3']] == target_str).any(axis=1)
df

 

下図は、真偽値「True, False」でなくて、有りを「1」,なしを「0」にしたい場合です。

下記は、上記の処理をするプログラムです。

import pandas as pd

df = pd.read_csv('sample_data.csv', encoding='cp932')

# 行方向に「りんご」が含まれているかを示す真偽値の列を作成し、その結果を新しい列「りんご」に代入
target_str = 'りんご'
df[target_str] = (df[['入荷1', '入荷2', '入荷3']] == target_str).any(axis=1).astype(int)
df

以上

<広告>