我有for
90,000次迭代的循环。每次迭代都做一行,在循环结束时,我想对dataframe
所有90K行都使用a。
我现在的操作方式如下-在每次迭代中,我将行存储为一个dataframe
名为“ sum_df”,并用于concat
将每一行插入到被dataframe
调用的中output_df
。像下面-
output_df = pd.concat([output_df, sum_df], sort=False)
但是,此concat
功能似乎效率低下,并降低了执行速度。有什么更好的方法呢?
我行存储为一个
dataframe
,并使用concat
每一行插入dataframe
叫output_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] 删除。
我来说两句