加速Pandas的计算

2024-09-27 04:19:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个长数据帧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进行迭代

有没有办法加快计算速度


Tags: 数据indffortimeresrowdf1

热门问题