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)