我需要创建一个大型数据框来保存我的数据。它有 30001 列,1000 行。对于数据类型,30000列是int64,最后一列是哈希值。
所以我首先创建一个空数据框:
df = pd.DataFrame(columns=columnNames, data=np.empty(shape=(1000, 30001)))
然后我根据数据框的列创建一个系列:
record = pd.Series(index=df.columns)
然后在循环中我将填充记录并将它们分配给数据框:
loop:
    record[0:30000] = values   #fill record with values
    record['hash']= hash_value
    df.loc[index] = record     <==== this is slow
    index += 1 
当我调试代码时,我发现上述将记录分配给行的步骤非常慢。
我的猜测是,如果我可以创建一个具有精确预分配大小的数据框,那么将记录分配给每一行将会快得多。
那么我可以创建预分配全尺寸的数据框吗?
(注意:我的原始数据框没有“哈希”列,它运行时没有任何性能问题。最近我发现我需要这个额外的哈希列,它是一个字符串值。并且这个性能问题在添加这个新列之后发生)