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.

¿Cómo transformar las cuatro primeras filas de un dataframe en nombres de columnas sin utilizar bucles?

Tengo el archivo CSV y necesito combinar sus primeras cuatro filas en encabezados (y el primer encabezado debe estar vacío). Traté de hacerlo con Pandas y el código funciona, pero sé que no se recomienda iterar a través de un dataframe. ¿Hay una mejor manera de hacerlo?

import pandas as pd

df = pd.readcsv(ruta_archivo, header=None)
df_headers = df[0:4]
df = df.drop(index=[0,1,2,3,])
lista_encabezados = []

for columna in df_headers:
    lista_encabezados.append(df_headers[columna].str.cat(sep=' '))

lista_encabezados[0] = ""
df.columns = lista_encabezados

df.to_csv('output.csv',index=False)
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una manera mejor de hacerlo. Puede utilizar el método pandas.DataFrame.join() para unir las primeras cuatro filas del archivo CSV en una sola fila y luego utilizar el atributo pandas.DataFrame.columns para establecer los nombres de las columnas.

    import pandas as pd
    
    df = pd.read_csv(ruta_de_archivo, header=None)
    df_headers = df[0:4]
    df = df.drop(index=[0,1,2,3,])
    
    header_row = df_headers.iloc[0].append(df_headers.iloc[1:].apply(lambda x: ' '.join(x), axis=0))
    header_row[0] = ""
    df.columns = header_row
    
    df.to_csv('output.csv',index=False)
    

Comments are closed.