加速熊猫计算

时间:2021-03-24 14:38:52

标签: python pandas performance

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

有什么办法可以加快计算速度吗?

0 个答案:

没有答案