2012-05-11 19 views
12

Estoy tratando de crear un pandas DataFrame y funciona bien para un solo archivo. Si necesito compilarlo para múltiples archivos que tienen la misma estructura de datos. Entonces, en lugar de un solo nombre de archivo, tengo una lista de nombres de archivos desde los cuales me gustaría crear el DataFrame.creando el marco de datos de pandas desde múltiples archivos

No estoy seguro de cuál es la forma de anexar a la actual DataFrame en pandas o hay una manera para que los pandas chupen una lista de archivos en un DataFrame.

Respuesta

21

El comando pandas concat es tu amigo aquí. Digamos que tienes todos tus archivos en un directorio, targetdir. Puede:

  1. hacer una lista de los archivos
  2. cargarlos como pandas tramas de datos
  3. y concatenar juntos

`

import os 
import pandas as pd 

#list the files 
filelist = os.listdir(targetdir) 
#read them into pandas 
df_list = [pd.read_table(file) for file in filelist] 
#concatenate them together 
big_df = pd.concat(df_list) 
+0

Glob sería perfecto para el primer paso. Puede generar una lista de archivos usando comodines. – thecircus

+1

En mi caso de uso, tenía que hacer 'pd.concat (df_list, ignore_index = True, axis = 1)' ya que cada archivo csv representaba una columna – zje

1

Podría tratar de concatenar los archivos antes de alimentarlos con pandas. Si está en Linux o Mac puede usar cat, de lo contrario, una función muy simple de Python podría hacer el trabajo por usted.

+0

seguro .. curiosidad si hay es una forma de hacerlo sin combinar todos los archivos. Gracias por su rápida respuesta Jose – Abhi

0

Son estos archivos en formato csv. Puede usar read_csv. http://pandas.sourceforge.net/io.html

Una vez que haya leído los archivos y los haya guardado en dos marcos de datos, podría unir los dos marcos de datos o agregar columnas adicionales a uno de los dos marcos de datos (suponiendo un índice común). Los pandas deberían poder completar las filas faltantes.

3

potencialmente terriblemente ineficiente, sino ...

Por qué no usar read_csv, la construcción de dos (o más) tramas de datos, a continuación, utilizar unirse a ponerlos juntos?

Dicho esto, sería más fácil responder a su pregunta si proporciona algunos datos o parte del código que ha utilizado hasta el momento.

Cuestiones relacionadas