<jupyter_start><jupyter_text>Manipulando Variables StringLa manipulación de variables tipo texto en un data frame es crucial.<jupyter_code># Creo una conexión con mi google drive

from google.colab import drive
drive.mount('/content/drive/')
# Me cambio al directorio de trabajo usando magia pythonista
%cd '/content/drive/My Drive/Colab Notebooks/db/'
!ls

# Set Up
import pandas as pd

data = {'names':['<NAME>',
                 '<NAME> 23',
                 '<NAME> 89',
                 '<NAME> 3',
                 '<NAME> 56',
                 '@freddier #platzi 10',pd.NA]}
data              
# Creamos diccionario
df = pd.DataFrame(data)

# Todas las funciones con strings se asocian así .str.metodo()
minusculas = df['names'].str.lower()
mayusculas =df['names'].str.upper()

df<jupyter_output><empty_output><jupyter_text>Los métodos asociados a str son muy parecidos a los usados en strings de pyhton.* .capitalize()* .len()* .replace()Obedece a la notación slicing de python y se aplica a toda la columna.<jupyter_code># Me retorna una lista con lo dividio según el caracters pasado, desde espacios hasta #
dividir_espacios = df['names'].str.split(' ')
dividir_espacios
# Sliceing NOtation: Me aplica la notación a toda la variable.

sliced =  df['names'].str[:3]
sliced
# Podemos usar findall() para buscar una secencia de texto especifica.

search = df['names'].str.findall('ara')
search
# Filtro por contenido mediante la función contains.

contains = df['names'].str.contains('or')
contains
# Contar el número de ocurrencias contando mediante count() Aquí estoy pidiendo que me cuente mayúsculas
ocurrency = df['names'].str.upper().str.count('A')
ocurrency
# Usando expresiones Regulares Aquí le estoy diciendo que em extraiga caracteres numericos.
df['names'].str.extract('([0-9])', expand = False)
# Con esto reeemplazo la entrada que tiene un arroba por vacío.
df['names'].str.replace('@[^\s]+','')<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12024665981500514, 'fraction_numerical': 0.006166495375128468, 'mean_word_length': 4.096858638743456, 'pattern_counts': {'":': 0, '<': 14, '<?xml version=': 0, '>': 14, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '246867', 'license': 'MIT', 'n_tokens_mistral': 656, 'n_tokens_neox': 652, 'n_words': 206, 'path': 'NoteBooks/Curso de Análisis de datos/Analisis y manipulación de datos/Transformando_data/Manipulando Variables String.ipynb', 'repo_name': 'Alejandro-sin/Learning_Notebooks', 'size': '1981'}