Tenia este error al importar el CSV

Que se soluciona agregando un econding='windows-1252' o enconding='latin1'

Online retail.csv Datos obtenidos de Daqing Chen, Sai Liang Sain, and Kun Guo, Data mining for the online retail industry: A case study of RFM model-based customer segmentation using data mining, Journal of Database Marketing and Customer Strategy Management, Vol. 19, No. 3, pp. 197–208, 2012 (Published online before print: 27 August 2012. doi: 10.1057/dbm.2012.17).
Online retail.csv Datos obtenidos de Daqing Chen, Sai Liang Sain, and Kun Guo, Data mining for the online retail industry: A case study of RFM model-based customer segmentation using data mining, Journal of Database Marketing and Customer Strategy Management, Vol. 19, No. 3, pp. 197–208, 2012 (Published online before print: 27 August 2012. doi: 10.1057/dbm.2012.17).
Tenia este error al importar el CSV

Que se soluciona agregando un econding='windows-1252' o enconding='latin1'

### Pandas para Manipulación de Datos
**Pandas** es una librería poderosa y flexible de Python que se utiliza principalmente para manipulación, análisis y limpieza de datos. Proporciona dos estructuras de datos principales: **Series** (para datos unidimensionales) y **DataFrames** (para datos bidimensionales), que permiten trabajar con conjuntos de datos de manera eficiente.
A continuación, te explico las principales funcionalidades de Pandas para la manipulación de datos:
---
### 1. **Creación de DataFrames**
Un **DataFrame** es la estructura principal en Pandas. Es una tabla bidimensional con columnas etiquetadas de diferentes tipos (numéricas, de texto, etc.). Puedes crear DataFrames de varias maneras.
#### A) A partir de un diccionario:
import pandas as pd
\# Crear un DataFrame desde un diccionario
data = {
  'Nombre': \['Ana', 'Luis', 'Carlos'],
  'Edad': \[23, 45, 36],
  'Ciudad': \['Madrid', 'Barcelona', 'Valencia']
}
df = pd.DataFrame(data)
print(df)
#### B) A partir de un archivo CSV:
df = pd.read\_csv('archivo.csv')
---
### 2. **Indexación y Selección de Datos**
Pandas ofrece diversas formas para seleccionar y filtrar datos en un DataFrame.
#### A) Selección de columnas:
\# Seleccionar una columna
edades = df\['Edad']
\# Seleccionar múltiples columnas
df\_subset = df\[\['Nombre', 'Edad']]
#### B) Selección de filas por etiqueta o posición:
\# Seleccionar por posición (iloc)
primera\_fila = df.iloc\[0]
\# Seleccionar por etiqueta (loc)
fila\_ana = df.loc\[df\['Nombre'] == 'Ana']
#### C) Filtrado de datos:
Puedes aplicar condiciones para filtrar filas.
\# Filtrar filas donde la edad es mayor de 30
mayores\_de\_30 = df\[df\['Edad'] > 30]
---
### 3. **Operaciones Básicas**
#### A) Descripción rápida de los datos:
Puedes obtener un resumen rápido de tu conjunto de datos con describe() o con métodos como mean(), sum(), etc.
df.describe() # Resumen estadístico de las columnas numéricas
#### B) Renombrar columnas:
df.rename(columns={'Nombre': 'Nombre\_Completo'}, inplace=True)
#### C) Ordenar los datos:
df.sort\_values(by='Edad', ascending=False, inplace=True) # Ordenar por edad descendente
---
### 4. **Manejo de Valores Nulos**
Los valores faltantes o nulos son comunes en los conjuntos de datos y es importante gestionarlos correctamente.
#### A) Identificar valores nulos:
df.isnull().sum() # Contar valores nulos por columna
#### B) Eliminar filas o columnas con valores nulos:
df.dropna(inplace=True) # Eliminar filas con valores nulos
#### C) Rellenar valores nulos:
df.fillna(value=0, inplace=True) # Rellenar valores nulos con 0
---
### 5. **Transformación de Datos**
Pandas permite aplicar funciones a las columnas o filas para transformar los datos.
#### A) Aplicar funciones a columnas:
\# Calcular 10% de descuento en una columna de precios
df\['Precio\_Descuento'] = df\['Precio'].apply(lambda x: x \* 0.9)
#### B) Agrupar datos:
Puedes agrupar datos y realizar agregaciones.
\# Agrupar por la columna 'Ciudad' y calcular la edad media
df\_grouped = df.groupby('Ciudad')\['Edad'].mean()
#### C) Pivotar datos:
df\_pivot = df.pivot\_table(values='Edad', index='Ciudad', columns='Sexo', aggfunc='mean')
---
### 6. **Fusión y Unión de DataFrames**
Pandas ofrece diversas formas de combinar y fusionar DataFrames.
#### A) Concatenar DataFrames:
df\_concatenado = pd.concat(\[df1, df2])
#### B) Fusión (Join) de DataFrames:
df\_merged = pd.merge(df1, df2, on='clave\_común', how='inner') # Tipos: 'inner', 'left', 'right', 'outer'
---
### 7. **Visualización de Datos con Pandas**
Aunque Pandas no es una librería de visualización por sí sola, se integra fácilmente con **Matplotlib** para generar gráficos rápidos.
#### A) Gráficos rápidos:
df\['Edad'].plot(kind='hist') # Histograma de la columna 'Edad'
#### B) Gráficos avanzados con Matplotlib:
import matplotlib.pyplot as plt
df\['Edad'].plot(kind='bar')
plt.show()
---
### 8. **Exportar Datos**
Después de manipular los datos, puedes exportarlos a diversos formatos.
#### A) Exportar a CSV:
df.to\_csv('archivo\_modificado.csv', index=False)
#### B) Exportar a Excel:
df.to\_excel('archivo\_modificado.xlsx', index=False)
---
### 9. **Optimización en Pandas**
#### A) Tipos de datos adecuados:
Usar los tipos de datos correctos en Pandas puede reducir el uso de memoria y mejorar el rendimiento. Por ejemplo, puedes convertir columnas de enteros a enteros de menor tamaño (int8, int16), o columnas categóricas a category.
df\['Categoría'] = df\['Categoría'].astype('category')
#### B) Uso eficiente de apply y vectorización:
Evita el uso excesivo de apply en funciones que pueden vectorizarse, ya que apply es más lento en comparación con las operaciones vectorizadas.
---
### Conclusión
Pandas proporciona una amplia gama de herramientas para manipular y analizar datos de manera eficiente y flexible. Desde la selección y filtrado de datos hasta la limpieza, transformación y visualización, Pandas es una herramienta esencial para cualquier científico de datos o analista. Con la optimización adecuada y un buen conocimiento de las técnicas avanzadas, puedes trabajar con grandes volúmenes de datos de manera eficiente.
import pandas as pd
df = pd.read_csv(r'C:\numypanda\Online_Retail.csv',encoding='latin')
#print(type(df))
print(df)
```import pandas as pd
df = pd.read\_csv(r'C:\numypanda\Online\_Retail.csv',encoding='latin')#print(type(df))print(df)
Por si les pasa que tienen números en formato texto este es un buen cambio:
Y si quieren pasar de texto a fecha:

Especificar la extensión de los archivos al usar funciones como pd.read_csv(path), pd.read_excel(path), y pd.read_json(path) no es solo por buena práctica, es necesario para que Pandas reconozca el formato del archivo que estás leyendo. Cada función está diseñada para manejar un tipo específico de archivo, y omitir la extensión podría llevar a errores o a que Pandas no sepa cómo procesar los datos correctamente.
En mi caso como Ingeniero Arquitecto, tenemos modelos 3D de edificios que contienen datos.
Por ejemplo, los ductos de aire acondicionado pueden ser una base de datos de los cuales podemos obtener su gasto, flujo, dimensiones etc, etc etc.
Para el sector de la construcción puede llegar a ser muy útil todo este conocimiento.

Si todavía sigue sin funcionar el link desde pc, aquí les dejo los recursos de la clase:
Link Dataset desde Kaggle:
Link Dataset desde Dropbox:
Recuerden que si no encuentran un recurso y estan desde una computadora, pueden entrar a la clase desde la app de Platzi donde si aparecen los recursos correctamente.
Para cargar el .cvs en escritorio
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
mipath = r'"ruta del archivo"\OnlineRetail.csv'
df = pd.read_csv(mipath, encoding='latin1')
print(df)
```import numpy as npimport pandas as pdimport matplotlib.pyplot as plt
mipath = r'C:\Users\gustavoandres\Desktop\platzi\OnlineRetail.csv'
df = pd.read\_csv(mipath, encoding='latin1')print(df)
si les da error al leer el csv usando vscode, esta fue la solucion en mi caso```python import pandas as pd path = r"C:\Users\Erick\Documents\Data science\Online_Retail.csv" df_ratail_data = pd.read_csv(path, encoding='windows-1252') print(type(df_ratail_data)) print(df_ratail_data)
Para que no hagan manualmente la descarga
import kagglehub
import os
# Download latest version
path = kagglehub.dataset_download("tunguz/online-retail")
print("Path to dataset files:", path)
print(os.listdir(path))
```import kagglehubimport os
\# Download latest versionpath = kagglehub.dataset\_download("tunguz/online-retail")
print("Path to dataset files:", path)print(os.listdir(path))