【发布时间】:2021-01-29 19:54:57
【问题描述】:
目标是为EXPECTED T 列分配一个值。如果C2 B列中有EM,则赋值为C1 S + C2 B,否则为C2 B处的值的图像。
为了实现目标,提出以下代码
data = {'C1 S': ['AB','AB','CD','CD','CD'],
'C2 B': ['EM','EM','EM','F','F'],
'EXPECTED_OUTPUT': ['AB EM','EB EM', 'CD EM','F','F']}
df = pd.DataFrame(data)
df['EXPECTED T']=df['C1 S']+' '+ df['C2 B']
mask = df ['C2 B'].str.contains ( r'EM', na=True )
df.loc [~mask, 'EXPECTED T'] = df.loc [~mask, 'C2 B']
但是,我想知道是否有比上面的代码更多的 Pythonic 实现类似的结果?
【问题讨论】:
标签: python pandas conditional-statements