熊猫循环太慢

时间:2020-10-25 20:19:35

标签: python pandas performance

我现在正忙于分析CSV数据日志文件,并且现在正在努力如何加快一些熊猫的计算速度。以下for循环有效,但速度不是很快:

for i in range(len(df)):

    if i==0:
        df.loc[i,"delta_t"] = 3
        df.loc[i,"E_sun"] = 0
    else:
        df.loc[i,"delta_t"] = (df.loc[i,"date_time"]- df.loc[i-1,"date_time"]).total_seconds()
        df.loc[i,"E_sun"] = df.loc[i-1,"E_sun"] + df.loc[i,"delta_t"] * df.loc[i,"E_flow_sun"]

是否有一种快速的方法来进行此计算?问题是我在不同的行上引用信息。如果所有数据都在同一行上,那么事情就变得很容易了,例如:

df["column1"] = df["column2"] + df["column3"] 

1 个答案:

答案 0 :(得分:0)

您正在查看Root<A> a = cq.from(A.class); Subquery<Integer> sum = cq.subquery(Integer.class); Root<E> e = sum.from(E.class); sum.select(cb.sum(e.get(E_.amount)); sum.where(cb.equal(e.join(E_.a), a); cq.where(cb.greaterThan(a.get(A_.amount), sum); diff

cumsum