Można wczytać dane z pliku HTML za pomocą funkcji pandas.read_html
. Funkcja ta szuka w dokumencie HTML tabel i zwraca ich zawartość jako listę obiektów DataFrame
. Przykład:
import pandas as pd
# Wczytaj wszystkie tabele z pliku HTML
df_list = pd.read_html('plik.html')
# Wczytaj tylko pierwszą tabelę
df = df_list[0]
# Wczytaj wszystkie tabele z URL-a
df_list = pd.read_html('http://mojastrona.pl/dane.html')
# Wczytaj tabele z dokumentu HTML zapisanego w zmiennej
zawartosc = '<table><tr><th>Kolumna1</th><th>Kolumna2</th></tr><tr><td>Wiersz1Kolumna1</td><td>Wiersz1Kolumna2</td></tr></table>'
df = pd.read_html(zawartosc)[0]
io
– ciąg znaków lub obiekt typu file-like, zawierający dokument HTML. Może to być plik lokalny, URL lub zawartość dokumentu HTML przechowywana w zmiennej.match
– ciąg znaków, wyrażenie regularne lub krotka ciągów znaków. Służy do filtrowania tabel, które mają zostać wczytane.header
– określa, który wiersz ma zostać użyty jako nagłówki kolumn. Może być liczbą całkowitą (np.header=0
) lub listą liczb całkowitych (np.header=[0, 1]
).index_col
– indeks kolumny lub lista indeksów kolumn, które mają zostać użyte jako indeks DataFrame. Może to być liczba całkowita (np.index_col=0
) lub lista liczb całkowitych (np.index_col=[0, 1]
).skiprows
– lista wierszy, które mają zostać pominięte podczas wczytywania danych. Może to być lista liczb całkowitych (np.skiprows=[0, 2]
) lub lista list liczb całkowitych (np.skiprows=[[0, 2], [5, 7]]
).attrs
– słownik atrybutów, które mają zostać użyte podczas szukania tabel w dokumencie HTML.
Przykłady użycia tych parametrów:
import pandas as pd
# Wczytaj tabele z pliku HTML, których atrybut "class" ma wartość "data"
df_list = pd.read_html('plik.html', attrs={'class': 'data'})
# Wczytaj tabele z URL-a, których atrybut "id" zaczyna się od "tab-"
df_list = pd.read_html('http://mojastrona.pl/dane.html', attrs={'id': 'tab-.*'})
# Wczytaj tabele z dokumentu HTML, które zawierają wiersz z nagłówkami o treści "Kolumna1" i "Kolumna2"
df_list = pd.read_html('plik.html', match='.*Kolumna1.*Kolumna2.*')
# Wczytaj tabele z pliku HTML, używając pierwszego wiersza jako nagłówków kolumn
df_list = pd.read_html('plik.html', header=0)
# Wczytaj tabele z pliku HTML, używając pierwszego i drugiego wiersza jako nagłówków kolumn
df_list = pd.read_html('plik.html', header=[0, 1])
# Wczytaj tabele z pliku HTML, używając trzeciej kolumny jako indeksu
df_list = pd.read_html('plik.html', index_col=2)
# Wczytaj tabele z pliku HTML, pomijając pierwszy wiersz
df_list = pd.read_html('plik.html', skiprows=0)
# Wczytaj tabele z pliku HTML, pomijając pierwszy i trzeci wiersz
df_list = pd.read_html('plik.html', skiprows=[0, 2])