问题描述
如何基于列 df['value'] 添加/创建返回 1 的列,如果该列中的值包含
df['INDICATOR'] = [1 if x.str.contains("<|<<") else 0 for x in df['value']]
我上面的尝试返回一个属性错误:'str object has no attrbute 'str'
解决方法
创建掩码,然后Series.astype
、Series.view
或numpy.where
将True/False
转换为1/0
:
m = df['value'].str.contains("<|<<")
#simplify mask - if contains << then contain <
m = df['value'].str.contains("<")
df['INDICATOR'] = m.astype(int)
df['INDICATOR'] = m.view('i1')
df['INDICATOR'] = np.where(m,1,0)