我有一个长数据帧df和一个短数据帧df2。我必须做一个计算,它涉及到长数据帧中的每一行。然后我必须剪切它并将其与第二个数据帧的一部分合并。最后,我必须分配结果
res = []
for iRow, row in df1.iterrows():
df1 = df.assign(dtf=1 - abs((df1.time - row.time) / pd.Timedelta('2 hours')))
df1 = df1[df1.dtf > 0]
df2 = df2.loc[(df2.x == row.x) & (df2.y != 0)]
df1 = df1.merge(df2)
df1 = df1.assign(z=df1.dtf * df1.y)
res.append((df1.y.sum(), df1.z.sum())
我清楚地看到我的CPU和内存不是很忙,但我认为并行化比直接计算需要更多的时间。我认为可以加快计算速度的一种方法是留在pandas内部,而不是通过Python进行迭代
有没有办法加快计算速度
目前没有回答
相关问题 更多 >
编程相关推荐