Explanation:
When you apply it like this: you work with strings, not with Pandas Series:
In [42]: df['Name'].apply(lambda x: print(type(x)))
<class 'str'>
<class 'str'>
<class 'str'>
Out[42]:
0 None
1 None
2 None
Name: Name, dtype: object
This is the same as:
In [44]: 'Marybeth'.replace('Mary','Amy')
Out[44]: 'Amybeth'
Decision:
Series.replace(to_replace = None, value = None, inplace = False, limit = None, regex = False, method = 'pad', axis = None) ( Series.apply()
) - (regex=False
) - , :
In [39]: df.Name.replace('Mary','Amy')
Out[39]:
0 Joe
1 Amy
2 Marybeth
Name: Name, dtype: object
regex=True
, :
In [40]: df.Name.replace('Mary','Amy', regex=True)
Out[40]:
0 Joe
1 Amy
2 Amybeth
Name: Name, dtype: object
: Series.str.replace(pat, repl, n = -1, case = None, flags = 0) doesn ' t regex
- pat
repl
RegEx:
In [41]: df.Name.str.replace('Mary','Amy')
Out[41]:
0 Joe
1 Amy
2 Amybeth
Name: Name, dtype: object