1. ホーム
  2. パイソン

[解決済み】pandasのdataframeのリストを連結する

2022-04-12 23:15:32

質問

Pandas dataframeのリストがあり、それを1つのPandas dataframeに結合したいのですが、どうすればよいでしょうか? Python 2.7.10とPandas 0.16.2を使っています。

からdataframeのリストを作成しました。

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

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

これは、データフレームのリストを返します

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]

を組み合わせたいと思います。 d1 , d2 および d3 を1つのpandas dataframeに変換しています。 あるいは、大きなテーブルを直接データフレームに読み込む方法として chunksize オプションがあれば、非常に助かります。

どのように解決するのですか?

すべてのデータフレームが同じカラムを持っているとすると、単純に concat それらを

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