pandas – realiza una operación de cadena en todos los elementos de una columna

Tengo una columna en un dataframe de pandas que es todo mayúsculas. Me gustaría cambiar esto a palabras con solo la primera letra en mayúscula.

He probado lo siguiente:

import pandas as pd data = pd.read_csv('my_file.csv') data['field'] = data['field'].title() 

Esto devuelve el error:

 'Series' object has no attribute 'title' 

¿Hay una forma sencilla de realizar operaciones de cadena como esta en una columna de pandas?

Encontré la respuesta aquí:

http://pandas.pydata.org/pandas-docs/stable/text.html

 data['field'] = data['field'].str.title() 

Una solución alternativa utilizando una lista de comprensión:

 data['field'] = [word.title() for word in data['field'] 

Tiempos

 df = pd.DataFrame({'field': ['abc', 'def', 'ghi'] * 100000}) %timeit df['field'].str.title() 10 loops, best of 3: 89.3 ms per loop %timeit [word.title() for word in df['field']] 10 loops, best of 3: 52.6 ms per loop