As pandas string methods are not optimized, mapping the equivalent Python string methods is often faster than pandas' .str
methods. So for example, to capitalize the first letter of each word, the following may be used.
df['Column1'] = df['Column1'].map(str.title)
Column1 Column1
The apple The Apple
the Pear ⟶ The Pear
Green TEA Green Tea
On the other hand, if you want to capitalize only the first character in each string, then calling upper()
only on the first character works.
df['Column1'] = df['Column1'].str[:1].str.upper() + df['Column1'].str[1:]
# or
df['Column1'] = df['Column1'].map(lambda x: x[:1].upper() + x[1:])
Column1 Column1
The apple The apple
the Pear ⟶ The Pear
Green TEA Green TEA