前提・実現したいこと
ターゲットの文字以降を抜き出して新たに列を作成したいです。
ターゲットの文字が含まれていないのは、np.nanにしたいです
リスト内包表記ではできたのですが、
例外処理でもやってみたいので
出来れば教えて頂けると幸いです。
df = pd.DataFrame({ 'A' : [1,2,3,4], 'B' : ['あいう123ターゲット456','あいう123target456','あいう123ターゲット456','あいう123456']}) try: df['test'] = [re.search(r'ターゲット(.*)', val).group(0) for val in df['B']] except AttributeError: df['test'] = np.nan
これでいけると思いましたが、全てNANになってしまいます。
試したこと
df = pd.DataFrame({ 'A' : [1,2,3,4], 'B' : ['あいう123ターゲット456','あいう123target456','あいう123ターゲット456','あいう123456']}) try: df['test'] = [re.search(r'ターゲット(.*)', val).group(0) for val in df['B']] except AttributeError: pass else: df['test'] = [re.search(r'ターゲット(.*)', val).group(0) for val in df['B']] finaly: df['test'] = np.nan
リスト内包表記ではできます。
df['test'] = [re.search(r'ターゲット(.*)', val).group(0) if 'ターゲット' in val else np.nan for val in df['B']]
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。