21 personajes del Spirit World encontrados con una API de Avatar y Python
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
21 personajes del Spirit World encontrados con una API de Avatar y Python
¿Cuántos personajes relacionados con el Spirit World podemos encontrar en el universo de Avatar: The Last Airbender?
En este proyecto combinamos una API REST, Python y Pandas para explorar un conjunto de datos de personajes de Avatar y encontrar aquellos cuya afiliación está relacionada con el Spirit World.
El resultado fue bastante interesante: después de consultar todos los registros, encontramos 21 personajes asociados con el Spirit World en los datos proporcionados por la API.
🌌 ¿Qué API utilizamos?
Para este análisis utilizamos la Last Airbender API, una API REST que proporciona información sobre personajes del universo de Avatar.
El endpoint utilizado para obtener los personajes es:
https://last-airbender-api.fly.dev/api/v1/characters
La respuesta está formada por registros JSON que contienen información como:
- Nombre del personaje
- Aliados
- Enemigos
- Fotografía
- Afiliación
- ID del personaje
🐍 Conectándonos desde Python
Primero utilizamos la biblioteca Requests para realizar una petición HTTP a la API.
import requests
url = "https://last-airbender-api.fly.dev/api/v1/characters"
response = requests.get(url)
print("Status:", response.status_code)
La respuesta fue:
Status: 200
Un código HTTP 200 indica que la solicitud fue procesada correctamente.
📄 La API devuelve los personajes de 20 en 20
Al consultar el endpoint descubrimos que la API devuelve 20 personajes por página.
Para obtener la siguiente página utilizamos el parámetro
page:
response = requests.get(
url,
params={"page": 2}
)
Repetimos este proceso hasta llegar a la última página disponible. La página 25 contenía 17 personajes y la página 26 ya no devolvía registros.
En total obtuvimos:
🔄 Descargando todas las páginas automáticamente
En lugar de descargar cada página manualmente, utilizamos un ciclo
while para continuar solicitando páginas hasta que la API
devolviera una lista vacía.
all_characters = []
page = 1
while True:
response = requests.get(
url,
params={"page": page}
)
data_page = response.json()
print(
f"Página {page}: "
f"{len(data_page)} personajes"
)
if not data_page:
break
all_characters.extend(data_page)
page += 1
print("Total de personajes:", len(all_characters))
De esta manera obtuvimos los 497 registros sin tener que escribir manualmente cada número de página.
🐼 Convertimos los datos en un DataFrame
Una vez descargados todos los personajes, utilizamos Pandas para trabajar con ellos.
import pandas as pd
df = pd.DataFrame(all_characters)
print("Filas:", len(df))
print("Columnas:", df.columns.tolist())
Nuestro DataFrame contiene 497 filas y las siguientes columnas:
_idalliesenemiesphotoUrlnameaffiliation
🔎 ¿Cómo encontramos a los personajes del Spirit World?
La clave fue la columna affiliation.
Utilizamos str.contains() para buscar los registros que
contienen el texto Spirit World.
spirit_world = df[
df["affiliation"].fillna("").str.contains(
"Spirit World",
case=False,
na=False
)
][["name", "photoUrl", "affiliation"]]
Aquí utilizamos tres elementos importantes de Pandas:
-
fillna("")para reemplazar los valores nulos por una cadena vacía. -
str.contains()para buscar el texto Spirit World. -
case=Falsepara que la búsqueda no dependa de mayúsculas o minúsculas.
🌌 El resultado: 21 personajes
Después de aplicar el filtro encontramos 21 personajes relacionados con el Spirit World dentro de los datos obtenidos de la API.
Para visualizar el resultado generamos una cuadrícula de 7 filas por 3 columnas, mostrando la imagen y el nombre de cada personaje.
📊 ¿Qué aprendimos con este proyecto?
El objetivo principal del proyecto fue practicar un flujo de trabajo muy común en análisis de datos:
- Consumir una API REST.
- Trabajar con respuestas JSON.
- Utilizar paginación.
- Descargar registros automáticamente.
- Convertir JSON en un DataFrame de Pandas.
- Filtrar información utilizando condiciones de texto.
- Trabajar con valores nulos.
- Visualizar los resultados.
Y lo interesante es que el mismo procedimiento puede utilizarse con muchas otras APIs y conjuntos de datos.
🐍 Del universo de Avatar al análisis de datos
Este proyecto es un ejemplo de cómo podemos utilizar un tema que nos gusta para aprender programación y análisis de datos.
En este caso comenzamos con una pregunta:
¿Quiénes están relacionados con el Spirit World?
Y terminamos utilizando una API, Python y Pandas para responderla utilizando datos.
¿Qué otro análisis podríamos descubrir dentro de estos 497 personajes?
Programación Para Todos
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Comentarios
Publicar un comentario
Dejanos tus dudas y comentarios