Ajouter une image à la trame de données Pandas

Fariba Laiq 15 février 2024
Ajouter une image à la trame de données Pandas

Parfois, nous voulons créer une base de données pandas composée d’images. Nous pouvons réaliser cette tâche en utilisant le module HTML de Python Pandas.

Nous allons convertir le chemin de l’image en une balise HTML. Ensuite, convertissez le dataframe en tableau HTML et affichez l’image. Python a un module intégré appelé HTML. Nous pouvons encoder et décoder du HTML en Python.

Utiliser le module HTML pour rendre l’image dans un DataFrame Pandas

Dans le code suivant, nous avons créé un dataframe contenant les informations sur l’artiste et le titre de la peinture. Pour afficher les images dans ce dataframe, nous allons faire une liste contenant les chemins des images.

Nous allons attribuer cette liste au dataframe sous forme de colonne. Nous avons créé une fonction qui convertit le chemin vers la balise img du HTML en concaténant <img src= avec le chemin.

La fonction redimensionne également l’image à une petite échelle à l’aide de l’attribut width. Ensuite, nous avons converti le dataframe pandas en un tableau HTML en utilisant la méthode to_html().

Nous avons appelé la méthode HTML pour rendre les images. Enfin, nous avons affiché l’ensemble du dataframe en utilisant la méthode display().

Exemple de code :

# 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))))

Production:

ajouter une image dans la trame de données pandas

Auteur: Fariba Laiq
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

Article connexe - Pandas DataFrame