es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python pandas dataframe cómo obtener “th” como una columna y “tr” como la fila

Bastante nuevo en Python y tratando de aprender de diferentes foros y cosas por el estilo. Estoy haciendo scraping utilizando Selenium y esta vez quería obtener una tabla. El scraping y la salida funcionan bien. Pero me gustaría tener los títulos como columnas y el valor tr como la fila. Hoy mi salida se ve así:

Imagen

Pero quiero que la salida se vea así:

Imagen

Este es el código:

Importar biblioteca

from selenium import webdriver
import pandas as pd

Abrir navegador

driver = webdriver.Chrome(ruta)

Obtener la URL

url = 'dar url'
driver.get(url)
driver.maximize_window()

Leer y convertir la tabla web en un marco de datos

webtable_df = pd.read_html(driver.find_element_by_xpath('').get_attribute('outerHTML'))[0]

Escribir en un archivo de Excel

webtable_df.to_excel(r'ruta', index=False, header=True)
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener la salida deseada donde los títulos son las columnas y los valores tr son las filas, puedes utilizar la función transpose() de pandas. Así es como puedes modificar tu código para obtener la salida deseada:

    # Importar la biblioteca
    from selenium import webdriver
    import pandas as pd
    
    # Abrir el navegador
    driver = webdriver.Chrome(path='la_ruta_de_tu_controlador_de_chrome')
    
    # Obtener la URL
    url = 'dar_url'
    driver.get(url)
    driver.maximize_window()
    
    # Leer y convertir la tabla web en un dataframe
    webtable_df = pd.read_html(driver.find_element_by_xpath('').get_attribute('outerHTML'))[0]
    
    # Transponer el dataframe
    webtable_df = webtable_df.transpose()
    
    # Establecer la primera fila como encabezados de columna
    new_header = webtable_df.iloc[0]
    webtable_df = webtable_df[1:]
    webtable_df.columns = new_header
    
    # Escribir en un archivo de Excel
    webtable_df.to_excel(r'ruta', index=False, header=True)
    

    La función transpose() intercambiará las filas y columnas del dataframe. Luego, puedes establecer la primera fila como los encabezados de columna utilizando la función iloc() y renombrar las columnas en consecuencia. Finalmente, puedes escribir el dataframe modificado en un archivo de Excel.

Comments are closed.