concat的替代方法,用于在数据框中插入记录

卡维1

我有for90,000次迭代的循环。每次迭代都做一行,在循环结束时,我想对dataframe所有90K行都使用a。

我现在的操作方式如下-在每次迭代中,我将行存储为一个dataframe名为“ sum_df”,并用于concat将每一行插入到被dataframe调用的中output_df像下面-

output_df = pd.concat([output_df, sum_df], sort=False)

但是,此concat功能似乎效率低下,并降低了执行速度。有什么更好的方法呢?

pp

我行存储为一个dataframe,并使用concat每一行插入dataframeoutput_df

您的预处理是效率低下的原因。相对于附加到列表列表而言,串联数据帧是昂贵的。因此,请勿将每一行存储为一个数据框假设您可以将“行”转换为一个列表:

LoL = []
for item in some_iterable:
    lst = func(item)    # func is a function which returns a list from item
    LoL.append(lst)     # append to list of lists
df = pd.DataFrame(LoL)  # construct dataframe from list of lists

或更简洁地说:

df = pd.DataFrame([func(item) for item in some_iterable])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章