Leer tabla HTML en un marco de datos de Pandas
-
Utilice el método
read_html()
para leer tablas HTML en un marco de datos de Pandas -
Utilice el método
read_html()
para leer una tabla HTML desde una URL -
Utilice el método
read_html()
para leer una tabla HTML desde una cadena -
Utilice el método
read_html()
para leer una tabla HTML desde un archivo
Este tutorial demostrará cómo leer tablas HTML desde una URL, cadena o archivo y convertirlas en un marco de datos de Pandas en Python. El read_html()
es un método rápido y práctico de la biblioteca de Pandas, que se utiliza para raspar tablas HTML en un marco de datos de Pandas.
Utilice el método read_html()
para leer tablas HTML en un marco de datos de Pandas
El método read_html()
toma la URL del sitio web, la cadena HTML o el archivo de texto HTML como argumento. Extrae todas las tablas y las devuelve en forma de una lista de marcos de datos porque un sitio web, una cadena o un archivo pueden contener varias tablas.
Si no existe ninguna tabla, el código da un ValueError: No se encontraron tablas
.
Instalar lxml
en Python
lxml
es una biblioteca en Python que se utiliza para extraer, manejar y procesar datos HTML y XML. Antes de usar el método read_html()
, tenemos que instalar lxml
usando el siguiente comando y reiniciar el kernel si estamos usando Jupyter Notebook.
#Python 3.x
pip install lxml
Utilice el método read_html()
para leer una tabla HTML desde una URL
Pasaremos la URL del sitio web como argumento en el método read_html()
para leer todas las tablas y almacenarlas en el dataframe de Pandas. Podemos usar el método len()
con el marco de datos para contar el número de tablas devueltas.
Aquí, obtenemos una lista de dos tablas. Si queremos acceder a la primera tabla, accederemos a ella a través de su índice 0
en la lista.
Código de ejemplo:
# 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])
Producción:
Utilice el método read_html()
para leer una tabla HTML desde una cadena
En el siguiente código, tenemos una tabla HTML en forma de cadena almacenada en la variable tabla
. Para convertir la tabla en un marco de datos de Pandas, llamaremos al método read_html()
y pasaremos la cadena HTML como argumento.
Solo hay una tabla en la cadena HTML, por lo que la longitud de la lista de tramas de datos es 1
. Mostraremos la tabla accediendo a ella mediante su índice.
Código de ejemplo:
# 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])
Producción:
Utilice el método read_html()
para leer una tabla HTML desde un archivo
Leeremos la tabla HTML almacenada en un archivo de texto en un marco de datos de Pandas a través del manejo de archivos. Primero, colocamos el archivo de texto que contiene la tabla en el directorio actual.
O, si estamos usando un cuaderno Jupyter, debemos cargar el archivo de texto en el directorio de inicio. Luego leeremos el archivo de texto a través de open()
y pasaremos el nombre de archivo
y r
como modo porque leeremos un archivo.
Extraeremos el contenido del archivo en el dataframe de Pandas a través del método read()
.
Código de ejemplo:
# 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])
Producción:
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.
LinkedInArtículo relacionado - Pandas DataFrame
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo convertir un float en un entero en Pandas DataFrame
- Cómo clasificar Pandas DataFrame por los valores de una columna
- Cómo obtener el agregado de Pandas grupo por y suma