pandas.Series.str()
El método str de una serie pandas nos da acceso a funciones vectorizadas de tratamiento de cadenas de texto, haciendo innecesario el recurrir a bucles externos.
El método pandas.Series.str no acepta parámetros.
Supongamos que partimos de la siguiente serie pandas:
s = pd.Series(["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio"])
s
0 Enero
1 Febrero
2 Marzo
3 Abril
4 Mayo
5 Junio
dtype: object
Si deseásemos, por ejemplo, convertir los nombres de los meses a mayúsculas, podríamos pensar que el único método es recurrir a bucles externos o a una list comprehension:
[t.upper() for t in s]
['ENERO', 'FEBRERO', 'MARZO', 'ABRIL', 'MAYO', 'JUNIO']
...para reasignar estos valores a nuestra serie s:
s = pd.Series([t.upper() for t in s])
s
0 ENERO
1 FEBRERO
2 MARZO
3 ABRIL
4 MAYO
5 JUNIO
dtype: object
Sin embargo, el rendimiento de este tipo de herramientas es inferior al que nos ofrecen las funciones vectorizadas, por lo que sería conveniente disponer de este tipo de funciones para poder aplicarlas a los valores de las estructuras pandas uno por uno ("element-wise"). Pues bien, el método str precisamente nos da acceso a este tipo de funciones. Por ejemplo, si partimos de nuestra serie s original:
s = pd.Series(["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio"])
s
0 Enero
1 Febrero
2 Marzo
3 Abril
4 Mayo
5 Junio
dtype: object
...para convertir los textos a mayúsculas valdría con ejecutar el siguiente código:
s = s.str.upper()
s
0 ENERO
1 FEBRERO
2 MARZO
3 ABRIL
4 MAYO
5 JUNIO
dtype: object
Podemos visualizar el conjunto de nombres asociados a este método para confirmar las funciones a las que tenemos acceso:
print([i for i in dir(pd.Series.str) if not i.startswith("_")])
['capitalize', 'casefold', 'cat', 'center', 'contains', 'count', 'decode', 'encode', 'endswith', 'extract', 'extractall', 'find', 'findall', 'get', 'get_dummies', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'islower', 'isnumeric', 'isspace', 'istitle', 'isupper', 'join', 'len', 'ljust', 'lower', 'lstrip', 'match', 'normalize', 'pad', 'partition', 'repeat', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'slice', 'slice_replace', 'split', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'wrap', 'zfill']