df['sport'] = df.sport.str.replace(r'(^.*ball.*$)', 'ball sport')
df
In [71]:
df.loc[df['sport'].str.contains('ball'), 'sport'] = 'ball sport'
df
Out[71]:
name sport
0 Bob tennis
1 Jane ball sport
2 Alice ball sport
df.sport = df.sport.apply(lambda x: 'ball sport' if 'ball' in x else x)
df.sport.str.replace(r'(^.*ball.*$)', 'ball sport')
0 tennis
1 ball sport
2 ball sport
Name: sport, dtype: object