循环太慢了

2024-04-24 03:31:03 发布

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

我现在正忙于分析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条回答
网友
1楼 · 发布于 2024-04-24 03:31:03

您正在查看diffcumsum

df['delta_t'] = df['date_time'].diff().total_seconds().fillna(3)

df['E_sun'] = (df['delta_t'] * df['E_flow_sun']).cumsum()

相关问题 更多 >