web-dev-qa-db-fra.com

Concaténer une liste de pandas _ images ensemble

J'ai une liste de Pandas données que je voudrais combiner en un Pandas données. J'utilise Python 2.7.10 et Pandas 0.16.2

J'ai créé la liste des dataframes à partir de:

import pandas as pd
dfs = []
sqlall = "select * from mytable"

for chunk in pd.read_sql_query(sqlall , cnxn, chunksize=10000):
    dfs.append(chunk)

Ceci retourne une liste de dataframes

type(dfs[0])
Out[6]: pandas.core.frame.DataFrame

type(dfs)
Out[7]: list

len(dfs)
Out[8]: 408

Voici quelques exemples de données

# 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]

Je voudrais combiner d1, d2 et d3 en un pandas dataframe. Sinon, une méthode consistant à lire une table de grande taille directement dans une trame de données lors de l'utilisation de l'option chunksize serait très utile.

89
Whitebeard

Étant donné que toutes les images ont les mêmes colonnes, vous pouvez simplement concat les:

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

Si les bases de données N'ONT PAS toutes les mêmes colonnes, essayez ce qui suit:

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

Vous pouvez également le faire avec une programmation fonctionnelle:

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