You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

1 Días
4 Hrs
0 Min
53 Seg

Caso de Estudio (Parte I). Limpieza de datos

29/32
Resources

These questions are key to understanding what you want to achieve with data analysis:

Purpose of the Analysis 2.

  • What is the main purpose of the analysis?
    • The main purpose of analytics is to understand buying patterns, identify best-selling products and most valuable customers, and detect possible trends in sales. This could help optimize inventories, improve marketing strategies, and increase customer satisfaction.
  • What specific questions do you want to answer?
    • What are the best-selling products?
    • Who are the most valuable customers?
    • Are there seasonal patterns or trends in sales?
    • What factors contribute to repeat purchases?

2. Business Context

  • What type of business is related to this data?
    • The dataset appears to be related to an online retailer selling a variety of products. This is inferred from the typical structure of online sales data, which includes product codes, descriptions, prices, and customer transactions.
  • What are the company's overall objectives?
    • Increase sales, improve customer retention, optimize inventory management, and improve efficiency in the online store operation.
  • Who are the main stakeholders?
    • Sales managers, marketing managers, operations and inventory management teams, and financial analysts who would benefit from a better understanding of sales data and customer patterns.

3. Scope of Analysis

  • What aspects are in and out of scope of the analysis?
    • In scope: sales analysis, identification of key products and customers, seasonal patterns, and sales trends.
    • Out of scope: detailed analysis of delivery logistics, study of direct competition, or analysis of customer satisfaction based on feedback not present in the dataset.
  • What limitations should be taken into account?
    • Limitations may include the quality of the data (possible missing or erroneous values), the time period covered by the data, and the lack of qualitative data on customer experience.

4. Expected Results

  • What kind of results are expected from the analysis?
    • Detailed reports that identify best-selling products and most valuable customers.
    • Visualizations showing trends and patterns in sales.
    • Possible predictive models to project future sales or recommend marketing strategies.
  • How will these results be used?
    • The results will be used to make strategic decisions about inventory, marketing campaigns, and to improve the customer experience and increase sales.

Contributions 6

Questions 0

Sort by:

Want to see more contributions, questions and answers from the community?

Si durante el curso se hubieran presentado más aplicaciones reales como estas, sin duda habría sido mucho más enriquecedor y práctico.
Para los que quieran seleccionar solo el pais, apliquen una condición al final del dictionary comprehension: ```python unique_values = {col: data[col].unique() for col in data.columns if col == 'Country'} for col, values in unique_values.items(): print(f"Column: {col}") print(f"Number of uniques values: {len(values)}") print(f"Unique values: {values}") print("-" * 50) result: Column: Country Number of uniques values: 38 Unique values: ['United Kingdom' 'France' 'Australia' 'Netherlands' 'Germany' 'Norway' 'EIRE' 'Switzerland' 'Spain' 'Poland' 'Portugal' 'Italy' 'Belgium' 'Lithuania' 'Japan' 'Iceland' 'Channel Islands' 'Denmark' 'Cyprus' 'Sweden' 'Austria' 'Israel' 'Finland' 'Bahrain' 'Greece' 'Hong Kong' 'Singapore' 'Lebanon' 'United Arab Emirates' 'Saudi Arabia' 'Czech Republic' 'Canada' 'Unspecified' 'Brazil' 'USA' 'European Community' 'Malta' 'RSA'] ```unique\_values = {col: data\[col].unique() for col in data.columns if col == 'Country'} for col, values in unique\_values.items(): print(f"Column: {col}") print(f"Number of uniques values: {len(values)}") print(f"Unique values: {values}") print("-" \* 50)
La \*\*limpieza de datos\*\* es un paso crucial en el proceso de análisis de datos, ya que garantiza la calidad y precisión de los resultados. Implica identificar, corregir o eliminar datos incorrectos, incompletos, duplicados o irrelevantes. A continuación, se describen las etapas y técnicas más comunes de limpieza de datos, utilizando ejemplos prácticos con \*\*Python\*\* y la biblioteca \*\*Pandas\*\*. \### 1. \*\*Identificación de Datos Faltantes\*\* Los valores faltantes son comunes en los conjuntos de datos y pueden afectar los análisis si no se manejan adecuadamente. \#### Identificar valores faltantes: ```python import pandas as pd \# Crear un DataFrame de ejemplo data = {'Nombre': \['Ana', 'Luis', 'Carlos', None, 'Julia'], 'Edad': \[23, None, 45, 34, 28], 'Ciudad': \['Madrid', 'Barcelona', None, 'Sevilla', 'Madrid']} df = pd.DataFrame(data) \# Identificar valores faltantes print(df.isnull()) # Muestra los valores faltantes print(df.isnull().sum()) # Cuenta los valores faltantes por columna ``` \### 2. \*\*Eliminación de Datos Faltantes\*\* En algunos casos, es apropiado eliminar las filas o columnas que contienen valores faltantes, especialmente si la cantidad de datos faltantes es alta y no se justifica la imputación. \#### Eliminar filas o columnas con valores faltantes: ```python \# Eliminar filas con valores faltantes df\_sin\_filas\_faltantes = df.dropna() \# Eliminar columnas con valores faltantes df\_sin\_columnas\_faltantes = df.dropna(axis=1) print(df\_sin\_filas\_faltantes) print(df\_sin\_columnas\_faltantes) ``` \### 3. \*\*Imputación de Valores Faltantes\*\* La imputación consiste en reemplazar los valores faltantes por estimaciones basadas en los datos disponibles, como la media, la mediana o el valor más frecuente. \#### Imputar con la media o la moda: ```python \# Imputar valores faltantes en la columna 'Edad' con la media df\['Edad'].fillna(df\['Edad'].mean(), inplace=True) \# Imputar valores faltantes en la columna 'Ciudad' con la moda (valor más frecuente) df\['Ciudad'].fillna(df\['Ciudad'].mode()\[0], inplace=True) print(df) ``` \### 4. \*\*Detección y Eliminación de Duplicados\*\* Los datos duplicados pueden distorsionar el análisis si no se detectan y eliminan. Pandas facilita la identificación y eliminación de registros duplicados. \#### Identificar y eliminar duplicados: ```python \# Crear un DataFrame con duplicados data\_dup = {'Nombre': \['Ana', 'Luis', 'Carlos', 'Ana', 'Luis'], 'Edad': \[23, 34, 45, 23, 34], 'Ciudad': \['Madrid', 'Barcelona', 'Sevilla', 'Madrid', 'Barcelona']} df\_dup = pd.DataFrame(data\_dup) \# Identificar duplicados print(df\_dup.duplicated()) \# Eliminar duplicados df\_sin\_duplicados = df\_dup.drop\_duplicates() print(df\_sin\_duplicados) ``` \### 5. \*\*Corregir Tipos de Datos\*\* Es común que las columnas tengan tipos de datos incorrectos (por ejemplo, números almacenados como cadenas de texto). Convertir los datos al tipo adecuado mejora el rendimiento y la precisión de los análisis. \#### Corregir tipos de datos: ```python \# Ver los tipos de datos print(df.dtypes) \# Convertir la columna 'Edad' a entero (si no tiene valores faltantes) df\['Edad'] = df\['Edad'].astype(int) print(df.dtypes) ``` \### 6. \*\*Normalización y Estándarización de Datos\*\* Los valores numéricos pueden necesitar ser transformados para garantizar que estén en un rango similar, lo que es crucial para muchos modelos de machine learning. \- \*\*Normalización\*\*: Escalar los datos para que estén entre 0 y 1. \- \*\*Estandarización\*\*: Centrar los datos alrededor de la media y reducir la desviación estándar a 1. \#### Ejemplo de normalización y estandarización: ```python from sklearn.preprocessing import MinMaxScaler, StandardScaler \# Normalización scaler = MinMaxScaler() df\['Edad\_normalizada'] = scaler.fit\_transform(df\[\['Edad']]) \# Estandarización scaler\_std = StandardScaler() df\['Edad\_estandarizada'] = scaler\_std.fit\_transform(df\[\['Edad']]) print(df) ``` \### 7. \*\*Tratamiento de Outliers\*\* Los outliers son valores que se desvían significativamente de la mayoría de los datos y pueden afectar el análisis. Puedes eliminarlos o transformarlos según el contexto. \#### Detección de outliers con el método del rango intercuartílico (IQR): ```python \# Calcular el rango intercuartílico Q1 = df\['Edad'].quantile(0.25) Q3 = df\['Edad'].quantile(0.75) IQR = Q3 - Q1 \# Definir los límites para detectar outliers limite\_inferior = Q1 - 1.5 \* IQR limite\_superior = Q3 + 1.5 \* IQR \# Filtrar los outliers outliers = df\[(df\['Edad'] < limite\_inferior) | (df\['Edad'] > limite\_superior)] print(outliers) ``` \### 8. \*\*Transformación de Datos Categóricos\*\* En muchos análisis, especialmente en modelos de machine learning, es necesario convertir los datos categóricos a un formato numérico. \#### Codificación One-Hot: ```python \# Crear variables dummy (One-Hot Encoding) df\_categ = pd.get\_dummies(df, columns=\['Ciudad'], drop\_first=True) print(df\_categ) ``` \### 9. \*\*Manejo de Valores Inconsistentes\*\* Los datos pueden tener inconsistencias en la forma de entradas con errores tipográficos o diferentes formatos para representar la misma información. \#### Ejemplo: ```python \# Corregir valores inconsistentes manualmente df\['Ciudad'] = df\['Ciudad'].replace({'madrid': 'Madrid', 'barcelona': 'Barcelona'}) print(df) ``` \### 10. \*\*Eliminar Datos Irrelevantes\*\* No todos los datos disponibles son relevantes para el análisis. Es importante identificar y eliminar las columnas o filas que no aportan información. \#### Ejemplo: ```python \# Eliminar una columna innecesaria df\_limpio = df.drop(columns=\['Edad\_estandarizada']) print(df\_limpio) ``` \### Conclusión: La limpieza de datos es un proceso fundamental que incluye el manejo de valores faltantes, la eliminación de duplicados, la corrección de tipos de datos, la detección de outliers y la normalización. Una limpieza adecuada mejora significativamente la calidad del análisis y los resultados subsecuentes.
Como cuando tus datos de internet ya están limpios y te saltas este paso dos puntos uve
🟢 **Qué son los UpSet Plot y cómo utilizarlos para datos faltantes** Un UpSet Plot es una visualización que permite explorar y entender **relaciones complejas** entre múltiples conjuntos. Permiten ver cómo se superponen los valores faltantes entre diferentes columnas o variables. Si tienes un conjunto de datos con múltiples columnas, puedes usar un UpSet Plot para visualizar qué combinaciones de columnas tienen valores faltantes y su frecuencia. ![](https://static.platzi.com/media/user_upload/image-2916b8d1-6bf0-4388-a359-3507f7b936e2.jpg) Como este gráfico, hay otros que te pueden ayudar en tu limpieza de datos. Si deseas conocer más te recomiendo [Curso de Manejo de Datos Faltantes: Detección y Exploración](https://platzi.com/cursos/datos-faltantes/). **¡Nunca pares de aprender!** 🚀🚀
La limpieza de datos es una fase crítica en el análisis de datos, que implica la detección y corrección de errores, inconsistencias, o valores faltantes en un conjunto de datos antes de realizar cualquier tipo de análisis. Este proceso es esencial porque la calidad de los datos afecta directamente la validez y la utilidad de los resultados analíticos. Sin datos limpios, los modelos predictivos pueden ser inexactos, las visualizaciones engañosas, y las decisiones basadas en estos datos podrían ser incorrectas.