Home > database >  How to add prefix to the selected records in python pandas df
How to add prefix to the selected records in python pandas df

Time:11-19

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
  • Related