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.

Mejor manera de analizar varios archivos y crear un solo marco de datos.

Quiero:

Leer un archivo en un marco de datos
Realizar algunas manipulaciones de datos, etc.
Copiar una columna del marco de datos
Añadir esa columna a un segundo marco de datos
Repetir 1-4 hasta que se lean todos los archivos

Mi implementación es:

all_data = [[]] #lista para almacenar cada conjunto de valores

for i in file_list:
filepath = path + i
df=pd.read_csv(filepath,sep=’\t’,header=None,names=colsList)
#varias manipulaciones de datos, melt, etc, etc, etc.
all_data.append(df[‘value’])

df_all = pd.DataFrame(all_data)
df_all=df_all.T #Transponer
df_all.set_axis(name_list, axis=1, inplace=True) #arreglar los nombres de columna

¿Cómo podría haberse implementado mejor?

Problemas:
– Los datos en la lista de Python están transpuestos (se agregan por filas y no por columnas)
– No pude encontrar una forma de agregar por columnas o transponer la lista (con la lista de Python o con pandas) que funcionara sin un error 🙁

Gracias de antemano…

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una implementación mejor podría ser:

    all_data = pd.DataFrame()  #dataframe para almacenar cada conjunto de valores
    
    for i in file_list:
        filepath =  path + i
        df=pd.read_csv(filepath,sep='\t',header=None,names=colsList)
        #varias manipulaciones de datos, melt, etc, etc, etc.
        all_data = all_data.append(df['value'], ignore_index=True)
    
    all_data.set_axis(name_list, axis=1, inplace=True)  #arreglar los nombres de las columnas
    

Comments are closed.