No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Limpieza de datos con Python y GitHub Copilot

7/17
Recursos

Aportes 11

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

7. Limpieza de datos con Python y GitHub Copilot

Limpieza de datos

# escribe una funcion para separar la fecha de la hora en dos columnas diferentes, de la columna "date"
## Crea una funcion para eliminar duplicados y reemplazar los valores nulos por 'N/A' en el dataframe df
## escribe una funcion para crear una nueva columna con el usuario oroginal del tweet sin tener en cuenta las letras RT, en caso que is_retweet sea True
## crea una funcion que elimine los espacios en blanco y las letras RT de la columna original_user en caso que el texto empiece con RT
## Crea una fuuncion para eliminar todos los emoji de la columna text

Estoy comentando esto sin saber si más adelante nos van a explicar, pero a hoy, 10 de septiembre de 2023, los tokens para el código de Twitter ya están desactualizados. Estuve tratando de investigar cómo se obtienen nuevos tokens pero es un poco difícil, sería bueno que se le dedicara un poco a explicar mejor lo que hay detrás de la creación del código que me pareció sumamente interesante.

Utilice un SQL generado por AI Bing del reto anterior y le pedi que agregue time a order date y luego que separe datatime que los habia unido en el codigo anterior.
Para separar la fecha y la hora en la tabla Order, puedes crear dos columnas separadas: una para la fecha (OrderDate) y otra para la hora (OrderTime). Aquí está tu código SQL modificado:

CREATE TABLE Customer (
    CustomerID int NOT NULL,
    FirstName varchar(255),
    LastName varchar(255),
    Email varchar(255),
    PRIMARY KEY (CustomerID)
);

CREATE TABLE Product (
    ProductID int NOT NULL,
    ProductName varchar(255),
    Price decimal,
    PRIMARY KEY (ProductID)
);

CREATE TABLE Order (
    OrderID int NOT NULL,
    CustomerID int,
    OrderDate date,  -- Cambiado de 'datetime' a 'date'
    OrderTime time,  -- Nueva columna para la hora
    PRIMARY KEY (OrderID),
    FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID)
);

CREATE TABLE OrderDetails (
    OrderDetailID int NOT NULL,
    OrderID int,
    ProductID int,
    Quantity int,
    PRIMARY KEY (OrderDetailID),
    FOREIGN KEY (OrderID) REFERENCES Order(OrderID),
    FOREIGN KEY (ProductID) REFERENCES Product(ProductID)
);

Ahora, la tabla Order tiene dos columnas separadas para la fecha y la hora en que se realizaron los pedidos. Recuerda que el formato de date es ‘AAAA-MM-DD’ y el de time es ‘HH:MI:SS’. Por ejemplo, ‘2023-09-16’ y ‘23:09:06’.

La inteligencia artificial, en particular los modelos de lenguaje natural que comprenden código, resultan sumamente beneficiosos en el proceso de limpieza de datos.

Una magnifica aportacion Carlos ya que en ciencia de datos la limpieza se le invierte bastante tiempo. Super protips aqui

"La limpieza de datos está completamente condicionada por las exigencias específicas de nuestro proyecto."
Para la limpieza de datos en Python usando GitHub Copilot, puedes seguir una serie de pasos que incluyen la identificación y eliminación de valores faltantes, la corrección de tipos de datos, la eliminación de duplicados, y la normalización de datos. A continuación, te presento una guía paso a paso para realizar la limpieza de datos con ejemplos prácticos y cómo GitHub Copilot puede asistir en el proceso. \### Paso 1: Instalación de Bibliotecas Necesarias Asegúrate de tener instaladas las siguientes bibliotecas: ```bash pip install pandas numpy ``` \### Paso 2: Cargar Datos Primero, carga tus datos en un DataFrame de pandas. Aquí hay un ejemplo de cómo cargar datos desde un archivo CSV: ```python import pandas as pd \# Cargar datos desde un archivo CSV df = pd.read\_csv('datos.csv') ``` \### Paso 3: Inspección Inicial Realiza una inspección inicial para entender la estructura de tus datos: ```python \# Ver las primeras filas del DataFrame print(df.head()) \# Obtener información sobre los tipos de datos y valores faltantes print(df.info()) \# Estadísticas descriptivas de los datos print(df.describe()) ``` \### Paso 4: Limpieza de Datos \#### 4.1. \*\*Manejo de Valores Faltantes\*\* Puedes usar GitHub Copilot para ayudarte a completar o eliminar valores faltantes. Aquí hay ejemplos de cómo hacerlo: ```python \# Rellenar valores faltantes con la media (para columnas numéricas) df.fillna(df.mean(), inplace=True) \# Eliminar filas con valores faltantes df.dropna(inplace=True) \# Rellenar valores faltantes con un valor específico df\['columna'].fillna('valor\_especifico', inplace=True) ``` \#### 4.2. \*\*Corrección de Tipos de Datos\*\* Asegúrate de que las columnas tienen el tipo de datos correcto: ```python \# Convertir una columna a tipo entero df\['columna'] = df\['columna'].astype(int) \# Convertir una columna a tipo fecha df\['fecha'] = pd.to\_datetime(df\['fecha']) ``` \#### 4.3. \*\*Eliminación de Duplicados\*\* Elimina duplicados en el DataFrame: ```python \# Eliminar filas duplicadas df.drop\_duplicates(inplace=True) ``` \#### 4.4. \*\*Normalización y Transformación de Datos\*\* Puedes normalizar y transformar datos para que estén en un formato consistente: ```python \# Normalizar una columna de texto (convertir a minúsculas) df\['texto'] = df\['texto'].str.lower() \# Reemplazar caracteres específicos en una columna de texto df\['texto'] = df\['texto'].str.replace('caracter\_antiguo', 'caracter\_nuevo') ``` \### Paso 5: Validación y Guardado Después de limpiar los datos, realiza una validación para asegurarte de que todo está correcto y guarda el DataFrame limpio en un nuevo archivo CSV: ```python \# Verificar la limpieza print(df.head()) \# Guardar el DataFrame limpio en un nuevo archivo CSV df.to\_csv('datos\_limpios.csv', index=False) ``` \### Uso de GitHub Copilot GitHub Copilot puede asistir en la generación de código para la limpieza de datos. Aquí te explico cómo puedes aprovecharlo: 1\. \*\*Escribir Consultas\*\*: Puedes empezar a escribir una consulta para limpiar datos y GitHub Copilot te sugerirá el código necesario. Ejemplo: ```python \# Rellenar valores faltantes con la med df.fillna(df.mean(), inplace=True) ``` Copilot puede sugerir el código completo para manejar valores faltantes o transformar datos. 2\. \*\*Completar Funciones\*\*: Cuando escribas funciones para limpiar datos, Copilot puede ayudarte a completar el código basado en patrones comunes. Ejemplo: ```python def limpiar\_datos(df): \# Completa con las sugerencias de Copilot ``` 3\. \*\*Revisar y Ajustar Sugerencias\*\*: Revisa las sugerencias de Copilot para asegurarte de que se ajustan a tus necesidades específicas y realiza ajustes según sea necesario. \### Ejemplo Completo Aquí tienes un ejemplo completo que incluye los pasos anteriores: ```python import pandas as pd \# Cargar datos df = pd.read\_csv('datos.csv') \# Inspección inicial print(df.head()) print(df.info()) print(df.describe()) \# Limpieza de datos df.fillna(df.mean(), inplace=True) # Rellenar valores faltantes con la media df\['columna'] = df\['columna'].astype(int) # Corregir tipo de dato df.drop\_duplicates(inplace=True) # Eliminar duplicados df\['texto'] = df\['texto'].str.lower() # Normalizar texto \# Guardar el DataFrame limpio df.to\_csv('datos\_limpios.csv', index=False) ```
Para la limpieza de datos en Python usando GitHub Copilot, puedes seguir una serie de pasos que incluyen la identificación y eliminación de valores faltantes, la corrección de tipos de datos, la eliminación de duplicados, y la normalización de datos. A continuación, te presento una guía paso a paso para realizar la limpieza de datos con ejemplos prácticos y cómo GitHub Copilot puede asistir en el proceso. \### Paso 1: Instalación de Bibliotecas Necesarias Asegúrate de tener instaladas las siguientes bibliotecas: ```bash pip install pandas numpy ``` \### Paso 2: Cargar Datos Primero, carga tus datos en un DataFrame de pandas. Aquí hay un ejemplo de cómo cargar datos desde un archivo CSV: ```python import pandas as pd \# Cargar datos desde un archivo CSV df = pd.read\_csv('datos.csv') ``` \### Paso 3: Inspección Inicial Realiza una inspección inicial para entender la estructura de tus datos: ```python \# Ver las primeras filas del DataFrame print(df.head()) \# Obtener información sobre los tipos de datos y valores faltantes print(df.info()) \# Estadísticas descriptivas de los datos print(df.describe()) ``` \### Paso 4: Limpieza de Datos \#### 4.1. \*\*Manejo de Valores Faltantes\*\* Puedes usar GitHub Copilot para ayudarte a completar o eliminar valores faltantes. Aquí hay ejemplos de cómo hacerlo: ```python \# Rellenar valores faltantes con la media (para columnas numéricas) df.fillna(df.mean(), inplace=True) \# Eliminar filas con valores faltantes df.dropna(inplace=True) \# Rellenar valores faltantes con un valor específico df\['columna'].fillna('valor\_especifico', inplace=True) ``` \#### 4.2. \*\*Corrección de Tipos de Datos\*\* Asegúrate de que las columnas tienen el tipo de datos correcto: ```python \# Convertir una columna a tipo entero df\['columna'] = df\['columna'].astype(int) \# Convertir una columna a tipo fecha df\['fecha'] = pd.to\_datetime(df\['fecha']) ``` \#### 4.3. \*\*Eliminación de Duplicados\*\* Elimina duplicados en el DataFrame: ```python \# Eliminar filas duplicadas df.drop\_duplicates(inplace=True) ``` \#### 4.4. \*\*Normalización y Transformación de Datos\*\* Puedes normalizar y transformar datos para que estén en un formato consistente: ```python \# Normalizar una columna de texto (convertir a minúsculas) df\['texto'] = df\['texto'].str.lower() \# Reemplazar caracteres específicos en una columna de texto df\['texto'] = df\['texto'].str.replace('caracter\_antiguo', 'caracter\_nuevo') ``` \### Paso 5: Validación y Guardado Después de limpiar los datos, realiza una validación para asegurarte de que todo está correcto y guarda el DataFrame limpio en un nuevo archivo CSV: ```python \# Verificar la limpieza print(df.head()) \# Guardar el DataFrame limpio en un nuevo archivo CSV df.to\_csv('datos\_limpios.csv', index=False) ``` \### Uso de GitHub Copilot GitHub Copilot puede asistir en la generación de código para la limpieza de datos. Aquí te explico cómo puedes aprovecharlo: 1\. \*\*Escribir Consultas\*\*: Puedes empezar a escribir una consulta para limpiar datos y GitHub Copilot te sugerirá el código necesario. Ejemplo: ```python \# Rellenar valores faltantes con la med df.fillna(df.mean(), inplace=True) ``` Copilot puede sugerir el código completo para manejar valores faltantes o transformar datos. 2\. \*\*Completar Funciones\*\*: Cuando escribas funciones para limpiar datos, Copilot puede ayudarte a completar el código basado en patrones comunes. Ejemplo: ```python def limpiar\_datos(df): \# Completa con las sugerencias de Copilot ``` 3\. \*\*Revisar y Ajustar Sugerencias\*\*: Revisa las sugerencias de Copilot para asegurarte de que se ajustan a tus necesidades específicas y realiza ajustes según sea necesario. \### Ejemplo Completo Aquí tienes un ejemplo completo que incluye los pasos anteriores: ```python import pandas as pd \# Cargar datos df = pd.read\_csv('datos.csv') \# Inspección inicial print(df.head()) print(df.info()) print(df.describe()) \# Limpieza de datos df.fillna(df.mean(), inplace=True) # Rellenar valores faltantes con la media df\['columna'] = df\['columna'].astype(int) # Corregir tipo de dato df.drop\_duplicates(inplace=True) # Eliminar duplicados df\['texto'] = df\['texto'].str.lower() # Normalizar texto \# Guardar el DataFrame limpio df.to\_csv('datos\_limpios.csv', index=False) ``` Con estos pasos y el apoyo de GitHub Copilot, podrás realizar una limpieza de datos eficiente y efectiva. Si tienes preguntas específicas o necesitas ayuda con un aspecto particular, ¡no dudes en preguntar!
**fun fact**: podemos preguntar por alguna parte del código y copilot nos contesta ahí mismo: ```js def get_extract_original_user(df): if df['is_retweet'] == True: return df['text'].split()[1] # porqué '[1]'? porque el primer elemento es 'RT' y el segundo es el nombre de usuario # para qué es '.split()'? para dividir el texto del tweet en palabras def clean_text(df): df['text'] = df['text'].str.replace(r'^RT[\s]+', '') # Remove 'RT' from the beginning of the text return df# en "r'^RT[\s]+''" para qué es "^" ? para que el texto empiece con 'RT' ```Pensando en que podría contestarme cualquier cosa le dije - "hola, como estás?" y lo convirtió en una lista de strings :(
Para les que buscan una alternativa a GitHub Copilot (que pasó a ser paga), recomiendo la extensión "Codeium" para Visual Studio. Es gratuita y funciona en extremo bien. <https://marketplace.visualstudio.com/items?itemName=Codeium.codeium>
Para la limpieza de datos con el uso de IA con GitHub Copilot, podemos suar los siguientes promots. 1. Escribe una función para separar realizar lo que en especificos queremos hacer. 2. Crear una función para eliminar duplicados. 3. Crear una función para remplazar los valors nulos por \[por lo que queremos remplazar. Recomendable N/A] Podemos usars Copilot para crear funciones en especifico para lo que queremos.