为什么创建SparseDataFrame(Python pandas)需要这么长时间?

dlo*_*rch 6 python scipy pandas jupyter

给出以下代码(在Jupyter笔记本中执行):

In [1]: import pandas as pd
        %time df=pd.SparseDataFrame(index=range(0,1000), columns=range(0,1000));

CPU times: user 3.89 s, sys: 30.3 ms, total: 3.92 s
Wall time: 3.92 s
Run Code Online (Sandbox Code Playgroud)

为什么创建稀疏数据帧需要这么长时间?

请注意,如果我增加行的维度,似乎无关紧要.但是当我将列数从1000增加到10000时,代码似乎需要永远,我总是不得不中止它.

将此与scipy的稀疏矩阵进行比较:

In [2]: from scipy.sparse import lil_matrix
        %time m=lil_matrix((1000, 1000))

CPU times: user 1.09 ms, sys: 122 µs, total: 1.21 ms
Wall time: 1.18 ms
Run Code Online (Sandbox Code Playgroud)