Manipulando DataFrames - Analiza tus datos con Pandas en Python parte 2

Manipulando DataFrames - Analiza tus datos con Pandas en Python parte 2

Ahora que sabemos como cargar nuestros archivos, es hora de usarlos. Comencemos configurando nuestro DataFrame inicial.

ūüí°
Este artículo es parte de nuestro curso sobre Pandas. Revisa el curso completo e inscríbete aquí. Revisa la parte 1 de esta guía aquí.
import pandas as pd
df_excel = pd.read_excel("https://docs.google.com/uc?export=download&id=1RjyFp3seXXSwjJMVwT6FBs3lNniDxsNN", index_col="ID_Producto")
‚Ěó
Encuentra todo el código asociado a este post en este notebook de Google Colab

Despliega los primeros o √ļltimos datos

Para mostrar una parte del DataFrame usar√°s el m√©todo head(n) o tail(n), donde 'n' son los primeros o √ļltimos n datos.

df_excel.head(5) # muestra los primeros 5 datos
df_excel.tail(5 # muestra los √ļltimos 5 datos

Muestra un resumen de los datos

Con describe() puedes obtener rápidamente algunas estadísticas descriptivas sobre tus datos

Ejemplo de como luce una consulta de df.describe()

M√°s funciones de estadistica descriptiva

# Promedio
df_excel.Precio.mean()

# Tambien funciona asi:
df_excel["Precio"].mean()
# Minimo
df_excel.Precio.min()

# Tambien funciona asi:
df_excel["Precio"].min()
# Maximo
df_excel.Precio.max()

# Tambien funciona asi:
df_excel["Precio"].max()
# Sumatoria
df_excel.Cantidad.sum()

# Tambien funciona asi:
df_excel["Cantidad"].sum()
# Contar por tipo
df_excel.Producto.value_counts()

# Tambien funciona asi:
df_excel["Producto"].value_counts()
# Contar total columna
df_excel.Producto.count()

# Tambien funciona asi:
df_excel["Producto"].count()

Filtra DataFrames

Puedes seleccionar un set de datos que cumplen una condición utilizando esta estructura df[condicion]. Por ejemplo

df_excel[df_excel["Cantidad"] > 100]

Estas condiciones pueden ser complejas a través de usar indicadores &(AND) y | (OR)

# Tienen que cumplirse dos condiciones al mismo tiempo
df_excel[(df_excel["Cantidad"] > 100) & (df_excel["Precio"] < 200000)]
# Tiene que cumplirse al menos una condición
df_excel[(df_excel["Cantidad"] > 100) | (df_excel["Precio"] < 200000)]

Para filtrar por aquellos que contienen un texto determinado, puedes usar .str.contains(). N√≥tese que es sensible a may√ļsculas y tildes.

# Filtra los productos que contienen la palabra "C√°mara"
df_excel[(df_excel["Producto"].str.contains("C√°mara"))]

Ordena DataFrames

Para ordenar los datos en tu DataFrame puedes usar la siguiente estructura
df.sort_values(by=nombre_columna, ascending=True/False)

El argumento ascending es True cuando los datos van de menor a mayor, y es False en el caso contrario.

Puedes combinarlo con el método head() y así desplegar un top 5, top 10, o similar. Por ejemplo así puedes ver el top 5 productos por precio.

df_excel.sort_values(by="Precio", ascending=False).head(5)

Gestión de datos vacios

Un problema com√ļn la hora de gestionar datos es que hay columnas que no tienen todos los datos. Miremos este ejemplo:

df_artistas = pd.read_excel("https://docs.google.com/uc?export=download&id=1bqVTtpAF50QSlrtB6DjfeHx1w9UKT7O3")
df_artistas
En el ejemplo, el Artista Feid no tiene dato asociado

Identificando datos vacios

En un DataFrame peque√Īo, como el que acabamos de crear, es f√°cil ver donde y cu√°ntos NaN hay. Pero cuando manipulamos grandes vol√ļmenes de datos es mejor llamar el siguiente tipo de c√≥digo para obtener un resumen de este problema.

df_artistas.isna().sum()

"""
Output:

Artista                       0
Spotify streams (millones)    1
dtype: int64
"""

Puedes ver que en la columna Spotify streams (millones) tenemos 1 dato con NaN, mientras que en las otras columnas no tenemos.

Eliminando datos vacíos

La fila de Feid no tiene ning√ļn dato, por lo que podr√≠a ser recomendable sacarlo del DataFrame, as√≠ podemos manipular los otros datos.

df_artistas_filtrado = df_artistas.dropna()
df_artistas_filtrado

Advertencia: el m√©todo dropna() elimina toda la fila si es que alguna columna es NaN.

Nota: Tienes que crear otro DataFrame con la información filtrada. Esto es una protección para evitar que elimines fácilmente los datos.

Llenando datos vacios

Otra manera de gestionar estos datos es llenando el vacio que dej√≥. Vamos a reemplazar el NaN en este caso por 7900, que fue el n√ļmero asociado a Feid para este a√Īo, usando fillna

df_artistas_llenado = df_artistas.fillna(7900)
df_artistas_llenado

Si queremos ser super específicos con como vamos a completar los datos, vamos a usar el método loc para específicamente localizar ese dato.

df_artistas.loc[5, "Spotify streams (millones)"] = 7900
df_artistas

Creando una columna usando una formula

Puede a√Īadir una nueva columna en base a c√°lculos.

En el siguiente ejemplo tenemos un DataFrame con la cantidad y precio de cada producto.

df_excel.head(3)

Suponga que quiere saber cu√°les son los productos que representan m√°s valor en su inventario. Para ello le pide que cree una nueva columna llamada "ValorInventario" que contenga el valor de la cantidad multiplicada por el precio de cada producto.

# Generamos la columna
df_excel["ValorInventario"] = df_excel.Cantidad * df_excel.Precio

# Desplegamos el cambio, con solo los 3 primeros productos
df_excel.head(3)

Borrando una columna

Para borrar una columna debe usar drop, y especificar axis=1, que es el indicador de columnas. En pandas axis=0 referencia a las filas.

df_productos_borrado = df_excel.drop("ValorInventario", axis=1)

# Desplegamos el cambio, con solo los 3 primeros productos
df_productos_borrado.head(3)

Nota: Tienes que crear otro DataFrame con la información borrada. Esto es una protección para evitar que elimines fácilmente los datos y no puedas recuperarlos.


Accede a nuestro curso

Este artículo es parte de nuestro curso sobre Pandas. Revisa el curso completo e inscríbete aquí.

Continua con la siguiente parte de estas guías: Graficar y Exportar Datos