pandas.DataFrame.append
がかなり遅いときの対策メモ
タスク
空のDataFrameに大量のDataFrame(or Series)を付け加える.
今回は例として,以下の空のdf_data
に(2×3の)df_add
を1万個付け加える.(本当はdf_add
は毎回違うデータと思うが今回は例なので同じものを付け加える想定)
1 | import pandas as pd |
1. DataFrame.append
による実現(遅い)
1 | df = pd.DataFrame() |
これは結構時間がかかる.(df
が毎回コピーされるため?)
2. DataFrame.from_dict
による実現(速い)
1 | df = pd.DataFrame() |
空の辞書を作ってあげて,そこにkey=counter
としてpandas.Series
を追加していく.最後にpandas.DataFrame.from_dict
によって辞書からDataFrame
を作る.
動かしてみたらわかるがこちらのほうがだいぶ速い.
!!! Tip
今回はdf_add
をSeries
にするためにiteritems()
を使っている.