日々精進

新しく学んだことを書き留めていきます

集計はlong formatよりwide formatの方が速い

long formatとwide formatについては以下参照。

www.theanalysisfactor.com

long formatのDataFrameに対して以下のように商品毎の日別売上合計を集計したところ、53秒かかった。

sums: DataFrame = train.groupby(["item_id", "date"])[SALES_COUNT].sum()

これをwide formatに直し、以下のように商品毎の日別売上合計を集計したところ、0.63秒で終わった。

sums = train.groupby("item_id").sum()

グループの数が数個とかだとlong formatでもすぐ終わるけど、item_idが3000ぐらいあったので100倍近く差が出てしまった。 pandas難しい。。