【发布时间】:2020-08-11 14:18:53
【问题描述】:
有没有办法提高效率?假设TimeStart = 0 和TimeEnd = 9,000,000 id 有一个非常长的范围来迭代并加载到我的数据框中。我正在阅读有关制作数据字典然后将字典一次性加载到数据框中的信息。我真的不知道如何用我正在做的事情来完成这项工作。该代码目前正在将每一行附加到数据帧中,效率非常低。
for i in range(TimeStart,TimeEnd,50):
chValue = objChannel.getInterpolatedValue(i)
time = i/10000
df = df.append({'Time': time, 'Speed': chValue} , ignore_index=True)
【问题讨论】:
-
什么是
objChannel.getInterpolatedValue -
@Yo_Chris 我这边的东西。为了这个问题,
chValue可以是任意值。 -
对于初学者来说,您只是自己附加一个值,而不是将其保存在任何容器中?
-
@Datanovice 没有使用任何容器。当前每次迭代都附加到数据帧。
-
df = df.append(...)是 O(N^2),因为您在ith 迭代中复制i-1行。尝试先创建一个列表字典,然后将其传递给数据框。