Вы можете использовать apply
и lambda
здесь:
s0 = '34 years old woman with pain in her XXX - Pharyngitis'
s1 = '67 years old man with xxx - yyy zzz - Nephropathy'
s2 = 'Metastatic Liver Cancer'
df = pd.DataFrame([s0, s1, s2], columns=['title'])
df['diagnosis'] = df['title'].apply(lambda x: x.split(' - ')[-1])
print(df['diagnosis'])
Печать:
0 Pharyngitis
1 Nephropathy
2 Metastatic Liver Cancer
Name: diagnosis, dtype: object
Если вам нравится пустая строка, если в поле нет -
строка, измените строку на:
df['diagnosis'] = df['title'].apply(lambda x: x.split(' - ')[-1] if ' - ' in x else '')