tutorial tablas seleccionar recorrer para nombre libreria leer funciones filas espaƱol documentacion datos columnas columna cambiar python pandas dataframe concat

python - tablas - recorrer filas pandas



Concatenar una lista de marcos de datos de pandas juntos (3)

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 , d2 y d3 en un marco de datos de pandas. Alternativamente, sería muy útil un método para leer una tabla de gran tamaño directamente en un marco de datos cuando se utiliza la opción de chunksize .


Dado que todos los marcos de datos tienen las mismas columnas, simplemente puede concat :

import pandas as pd df = pd.concat(list_of_dataframes)


Si los marcos de datos NO tienen todas las mismas columnas, intente lo siguiente:

df = pd.DataFrame.from_dict(map(dict,df_list))


También puedes hacerlo con programación funcional:

reduce(lambda df1, df2: df1.merge(df2, "outer"), mydfs)