Concaténer une liste des pandas dataframes ensemble
J'ai une liste de Pandas dataframes que je voudrais combiner en un seul Pandas dataframe. Je suis à l'aide de Python 2.7.10 et les Pandas 0.16.2
J'ai créé la liste de 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)
Cela renvoie 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
dans l'une des pandas dataframe. Sinon, une méthode de lecture d'un grand-ish table directement dans un dataframe lors de l'utilisation de la chunksize
option serait très utile.
Vous devez vous connecter pour publier un commentaire.
Étant donné que toutes les dataframes ont les mêmes colonnes, vous pouvez simplement
concat
eux:data.frame
n'ont pas les mêmes colonnes, alorsNaN
sera inséré, sans jeter d'erreur dans la nouvelle version depandas
Si le dataframes N'ont PAS tous les mêmes colonnes, essayez les solutions suivantes:
TypeError: data argument can't be an iterator
. La conversion àlist
première (pour imiter Python 2.7) est livré avec des résultats inattendus.Vous pouvez aussi le faire avec de la programmation fonctionnelle: