Lesen Sie die HTML-Tabelle in einem Pandas DataFrame

Fariba Laiq 15 Februar 2024
  1. Verwenden Sie die Methode read_html(), um HTML-Tabellen in einem Pandas DataFrame zu lesen
  2. Verwenden Sie die read_html()-Methode, um eine HTML-Tabelle von einer URL zu lesen
  3. Verwenden Sie die Methode read_html(), um eine HTML-Tabelle aus einer Zeichenfolge zu lesen
  4. Verwenden Sie die read_html()-Methode, um eine HTML-Tabelle aus einer Datei zu lesen
Lesen Sie die HTML-Tabelle in einem Pandas DataFrame

In diesem Tutorial wird gezeigt, wie HTML-Tabellen aus einer URL, Zeichenfolge oder Datei gelesen und in Python in einen Pandas-Datenrahmen konvertiert werden. read_html() ist eine schnelle und praktische Methode der Pandas-Bibliothek, die zum Scrapen von HTML-Tabellen in einem Pandas-Datenrahmen verwendet wird.

Verwenden Sie die Methode read_html(), um HTML-Tabellen in einem Pandas DataFrame zu lesen

Die Methode read_html() nimmt die URL der Website, den HTML-String oder die HTML-Textdatei als Argument. Es kratzt alle Tabellen und gibt sie in Form einer Liste von Datenrahmen zurück, da eine Website, ein String oder eine Datei mehrere Tabellen enthalten kann.

Wenn keine Tabelle existiert, gibt der Code einen ValueError: No tables found aus.

Installieren Sie lxml in Python

lxml ist eine Bibliothek in Python, die zum Daten-Scraping, Handhaben und Verarbeiten von HTML- und XML-Daten verwendet wird. Bevor wir die Methode read_html() verwenden, müssen wir lxml mit dem folgenden Befehl installieren und den Kernel neu starten, wenn wir Jupyter Notebook verwenden.

#Python 3.x
pip install lxml

Verwenden Sie die read_html()-Methode, um eine HTML-Tabelle von einer URL zu lesen

Wir werden die URL der Website als Argument in der read_html()-Methode übergeben, um alle Tabellen zu lesen und sie im Pandas-Datenrahmen zu speichern. Wir können die Methode len() mit dem Datenrahmen verwenden, um die Anzahl der zurückgegebenen Tabellen zu zählen.

Hier erhalten wir eine Liste mit zwei Tabellen. Wenn wir auf die erste Tabelle zugreifen wollen, greifen wir über ihren Index 0 in der Liste darauf zu.

Beispielcode:

# Python 3.x
import pandas as pd

tables = pd.read_html("https://www.w3schools.com/html/html_tables.asp")
print("No of tables returned:", len(tables))
display(tables[0])

Ausgang:

Pandas lesen HTML aus URL - Ausgabe

Verwenden Sie die Methode read_html(), um eine HTML-Tabelle aus einer Zeichenfolge zu lesen

Im folgenden Code haben wir eine HTML-Tabelle in Form eines Strings, der in der Variablen table gespeichert ist. Um die Tabelle in einen Pandas-Datenrahmen zu konvertieren, rufen wir die Methode read_html() auf und übergeben den HTML-String als Argument.

Es gibt nur eine Tabelle im HTML-String, daher ist die Länge der Liste der Datenrahmen 1. Wir zeigen die Tabelle an, indem wir über ihren Index darauf zugreifen.

Beispielcode:

# Python 3.x
import pandas as pd

table = """<table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Department</th>
            <th>Marks</th>
            <th>Age</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Robert</td>
            <td>CS</td>
            <td>60</td>
            <td>20</td>
        </tr>
        <tr>
            <td>Sam</td>
            <td>SE</td>
            <td>81</td>
            <td>21</td>
        </tr>
        <tr>
            <td>Alia</td>
            <td>SE</td>
            <td>79</td>
            <td>20</td>
        </tr>
    </tbody>
</table>"""
df_table = pd.read_html(table)
display(df_table[0])

Ausgang:

Pandas lesen HTML aus String - Ausgabe

Verwenden Sie die read_html()-Methode, um eine HTML-Tabelle aus einer Datei zu lesen

Wir werden die in einer Textdatei in einem Pandas-Datenrahmen gespeicherte HTML-Tabelle durch Dateibehandlung lesen. Zuerst legen wir die Textdatei, die die Tabelle enthält, in das aktuelle Verzeichnis.

Oder wenn wir ein Jupyter-Notebook verwenden, müssen wir die Textdatei in das Home-Verzeichnis hochladen. Dann lesen wir die Textdatei durch open() und übergeben den Dateinamen und r als Modus, weil wir eine Datei lesen werden.

Wir extrahieren den Dateiinhalt im Pandas-Datenrahmen durch die read()-Methode.

Beispielcode:

# Python 3.x
import pandas as pd

table_path = "table.txt"
with open(table_path, "r") as f:
    df_table = pd.read_html(f.read())
display(df_table[0])

Ausgang:

Pandas lesen HTML aus Datei - Ausgabe

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

Verwandter Artikel - Pandas DataFrame