У меня есть список блоков данных Pandas, которые я хотел бы объединить в один фрейм данных Pandas. Я использую Python 2.7.10 и панды 0.16.2Объедините список блоков данных pandas с одним файлом данных pandas
Я создал список dataframes от:
import pandas as pd
dfs = []
sqlall = "select * from mytable"
for chunk in pd.read_sql_query(sqlall , cnxn, chunksize=10000):
dfs.append(chunk)
Это возвращает список dataframes
type(dfs[0])
Out[6]: pandas.core.frame.DataFrame
type(dfs)
Out[7]: list
len(dfs)
Out[8]: 408
Вот некоторые выборочные данные
# 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]
Я хотел бы комбинировать , d2
, и d3
в один блок данных pandas. В качестве альтернативы, метод чтения таблицы больших чисел непосредственно в фрейм данных при использовании опции chunksize
будет очень полезен.
если у них нет одинаковых столбцов, вы можете их отбросить сначала в dict, а затем используйте from_dict - см. ниже – meyerson
, если вы хотите добавить столбцы, не забудьте добавить аргумент axis = 1 –
Я думаю, даже если некоторые 'data.frame' не имеют одинаковых столбцов, тогда' NaN' будет быть вставлен без ошибки в новой версии 'pandas' –