Tengo una lista de marcos de datos de Pandas que me gustaría combinar en un marco de datos de Pandas. Estoy usando Python 2.7.10 y Pandas 0.16.2
Creé la lista de marcos de datos de:
import pandas as pd
dfs = []
sqlall = "select * from mytable"
for chunk in pd.read_sql_query(sqlall , cnxn, chunksize=10000):
dfs.append(chunk)
Esto devuelve una lista de marcos de datos
type(dfs[0])
Out[6]: pandas.core.frame.DataFrame
type(dfs)
Out[7]: list
len(dfs)
Out[8]: 408
Aquí hay algunos datos de muestra
# sample dataframes
d1 = pd.DataFrame({'one' : [1., 2., 3., 4.], 'two' : [4., 3., 2., 1.]})
d2 = pd.DataFrame({'one' : [5., 6., 7., 8.], 'two' : [9., 10., 11., 12.]})
d3 = pd.DataFrame({'one' : [15., 16., 17., 18.], 'two' : [19., 10., 11., 12.]})
# list of dataframes
mydfs = [d1, d2, d3]
Me gustaría combinar d1, d2y d3en una trama de datos pandas. Alternativamente, un método para leer una tabla de gran tamaño directamente en un marco de datos cuando se usa la chunksizeopción sería muy útil.

data.frameno tienen las mismas columnasNaN, se insertarán sin arrojar un error en la nueva versión depandasSi los marcos de datos NO tienen todas las mismas columnas, intente lo siguiente:
fuente
TypeError: data argument can't be an iterator. La conversión alistprimera (para imitar Python 2.7) también produce resultados inesperados.También puedes hacerlo con programación funcional:
fuente
from functools import reduceusarreducepd.concatojoin, ambos aceptan una lista de marcos y se unen en el índice de forma predeterminada.concattambién funciona bien con una comprensión de lista extraída usando el comando "loc" contra un marco de datos existentefuente