Agregar imagen al dataframe de Pandas

Fariba Laiq 13 junio 2022
Agregar imagen al dataframe de Pandas

A veces queremos crear un dataframe de pandas que consta de imágenes. Podemos lograr esta tarea usando el módulo HTML en Python Pandas.

Convertiremos la ruta de la imagen a una etiqueta HTML. Luego, convierta el dataframe en una tabla HTML y muestre la imagen. Python tiene un módulo incorporado llamado HTML. Podemos codificar y decodificar HTML en Python.

Use el módulo HTML para representar la imagen en un dataframe de Pandas

En el siguiente código, hemos creado un dataframe que contiene la información sobre el artista y el título de la pintura. Para mostrar las imágenes en este dataframe, haremos una lista que contenga las rutas de las imágenes.

Asignaremos esta lista al dataframe como una columna. Hemos creado una función que convierte la ruta a la etiqueta img del HTML concatenando <img src= con la path.

La función también cambia el tamaño de la imagen a una escala pequeña usando el atributo de ancho. Luego hemos convertido el dataframe de pandas en una tabla HTML usando el método to_html().

Llamamos al método HTML para representar las imágenes. Por último, mostramos todo el dataframe usando el método display().

Código de ejemplo:

# Python 3.x
import pandas as pd
from IPython.core.display import HTML

df = pd.DataFrame(
    [
        ["Van Gogh", "Starry Night"],
        ["Van Gogh", "Sunflowers"],
        ["Van Gogh", "Cafe Terrace at Night"],
    ],
    columns=["Artist", "Painting Title"],
)
painting_images = [
    "https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Van_Gogh_-_Starry_Night_-_Google_Art_Project.jpg/1200px-Van_Gogh_-_Starry_Night_-_Google_Art_Project.jpg",
    "https://iiif.micr.io/TZCqF/full/1280,/0/default.jpg",
    "https://upload.wikimedia.org/wikipedia/commons/thumb/2/21/Vincent_Willem_van_Gogh_-_Cafe_Terrace_at_Night_%28Yorck%29.jpg/816px-Vincent_Willem_van_Gogh_-_Cafe_Terrace_at_Night_%28Yorck%29.jpg",
]
df["Painting"] = painting_images


def to_img_tag(path):
    return '<img src="' + path + '" width="50" >'


display(HTML(df.to_html(escape=False, formatters=dict(Painting=to_img_tag))))

Producción:

agregar imagen en el dataframe de pandas

Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Artículo relacionado - Pandas DataFrame