Verketten einer Liste von pandas dataframes zusammen
Habe ich eine Liste der Pandas dataframes, die ich kombinieren möchte in ein Pandas dataframe. Ich bin mit 2.7.10 Python und Pandas 0.16.2
Erstellte ich eine Liste von dataframes aus:
import pandas as pd
dfs = []
sqlall = "select * from mytable"
for chunk in pd.read_sql_query(sqlall , cnxn, chunksize=10000):
dfs.append(chunk)
Dieser gibt eine Liste von dataframes
type(dfs[0])
Out[6]: pandas.core.frame.DataFrame
type(dfs)
Out[7]: list
len(dfs)
Out[8]: 408
Ist hier einige Beispiel-Daten
# 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]
Ich würde gerne zu kombinieren d1
, d2
, und d3
in ein pandas dataframe. Alternativ eine Methode zum Lesen eines large-ish-Tabelle direkt in ein dataframe bei der Verwendung der chunksize
option wäre sehr hilfreich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gegeben, dass alle dataframes haben die gleichen Spalten haben, können Sie einfach
concat
Sie:data.frame
don ' T haben die gleichen Spalten, dannNaN
eingefügt werden, ohne dass Fehler in der neuen version vonpandas
Wenn die dataframes NICHT alle haben die gleichen Spalten, versuchen Sie Folgendes:
TypeError: data argument can't be an iterator
. Umstellung auflist
ersten (imitieren Python 2.7) kommt mit der unerwarteten Ergebnisse zu.Können Sie auch tun es mit der funktionalen Programmierung: