Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment lire des tableaux HTML avec Pandas (y compris un exemple)



Vous pouvez utiliser la fonction pandas read_html() pour lire des tableaux HTML dans un pandas DataFrame.

Cette fonction utilise la syntaxe de base suivante :

df = pd.read_html('https://en.wikipedia.org/wiki/National_Basketball_Association')

L’exemple suivant montre comment utiliser cette fonction pour lire un tableau des noms d’équipes NBA de cette page Wikipédia .

Exemple : Lire un tableau HTML avec Pandas

Avant d’utiliser la fonction read_html() , vous devrez probablement installer lxml :

pip install lxml

Remarque : Si vous utilisez un notebook Jupyter, vous devez redémarrer le noyau après avoir effectué cette installation.

Ensuite, nous pouvons utiliser la fonction read_html() pour lire chaque tableau HTML de cette page Wikipédia :

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from unicodedata import normalize

#read all HTML tables from specific URL
tabs = pd.read_html('https://en.wikipedia.org/wiki/National_Basketball_Association')

#display total number of tables read
len(tabs)

44

Nous pouvons voir qu’un total de 44 tableaux HTML ont été trouvés sur cette page.

Je sais que le tableau qui m’intéresse contient le mot « Division », je peux donc utiliser l’argument match pour récupérer uniquement les tableaux HTML contenant ce mot :

#read HTML tables from specific URL with the word "Division" in them
tabs = pd.read_html('https://en.wikipedia.org/wiki/National_Basketball_Association',
                    match='Division')

#display total number of tables read
len(tabs)

1

Je peux alors lister les noms des colonnes du tableau :

#define table
df = tabs[0]

#list all column names of table
list(df)

[('Division', 'Eastern Conference'),
 ('Team', 'Eastern Conference'),
 ('Location', 'Eastern Conference'),
 ('Arena', 'Eastern Conference'),
 ('Capacity', 'Eastern Conference'),
 ('Coordinates', 'Eastern Conference'),
 ('Founded', 'Eastern Conference'),
 ('Joined', 'Eastern Conference'),
 ('Unnamed: 8_level_0', 'Eastern Conference')]

Je ne m’intéresse qu’aux deux premières colonnes, je peux donc filtrer le DataFrame pour qu’il ne contienne que ces colonnes :

#filter DataFrame to only contain first two columns
df_final = df.iloc[:, 0:2]

#rename columns
df_final.columns = ['Division', 'Team']

#view first few rows of final DataFrame
print(df_final.head())

   Division                Team
0  Atlantic      Boston Celtics
1  Atlantic       Brooklyn Nets
2  Atlantic     New York Knicks
3  Atlantic  Philadelphia 76ers
4  Atlantic     Toronto Raptors

Le tableau final ne contient que les colonnes « Division » et « Équipe ».

Ressources additionnelles

Les tutoriels suivants expliquent comment lire d’autres types de fichiers dans pandas :

Comment lire un fichier texte avec Pandas
Comment lire des fichiers Excel avec Pandas
Comment lire des fichiers CSV avec Pandas

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *