I have df where some of the records in the column contains prefix and some of them not. I would like to update records without prefix. Unfortunately, my script adds desired prefix to each record in df:
new_list = []
prefix = 'x'
for ids in df['ids']:
if ids.find(prefix) < 1:
new_list.append(prefix ids)
How can I ommit records with the prefix? I've tried with df[df['ids'].str.contains(prefix)], but I'm getting an error.
CodePudding user response:
Use Series.str.startswith
for mask and add values with numpy.where
:
df = pd.DataFrame({'ids':['aaa','ssx','xwe']})
prefix = 'x'
df['ids'] = np.where(df['ids'].str.startswith(prefix), '', prefix) df['ids']
print (df)
ids
0 xaaa
1 xssx
2 xwe