Lesen Sie die HTML-Tabelle in einem Pandas DataFrame
-
Verwenden Sie die Methode
read_html()
, um HTML-Tabellen in einem Pandas DataFrame zu lesen -
Verwenden Sie die
read_html()
-Methode, um eine HTML-Tabelle von einer URL zu lesen -
Verwenden Sie die Methode
read_html()
, um eine HTML-Tabelle aus einer Zeichenfolge zu lesen -
Verwenden Sie die
read_html()
-Methode, um eine HTML-Tabelle aus einer Datei zu lesen
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:
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:
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:
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.
LinkedInVerwandter Artikel - Pandas DataFrame
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
- Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
- Wie erhält man das Aggregat der Pandas gruppenweise und sum