0

我一直在寻找一种方法来用矢量化替换 itterrows 并出现空白。我有这段代码,我相信使用 itterows 可以正常工作,这将永远持续下去。

sm_state = 0
fst_state = 0
time = 0
for index, row in df.iterrows():
    if row['Current'] < -5 or row['Current'] > 5 or row[active] == 0:
        sm_state = 0
        fst_state = 0
        time = 0
    else:
        sm_state = 1
        fst_state = 1
        time = row['ElapsedTime']

    if row['ElapsedTime'] - time >= smooth_time and sm_state == 1:
        sm_state = 2
    if row['ElapsedTime'] - time >= fast_time and fst_state == 1:
        fst_state = 2
    df.loc[index,'sm_timing'] = sm_state
    df.loc[index,'fst_timing'] = fst_state
return df

总而言之,这是在当前为 ~0 且 active = 1 时存储该点的经过时间(第一次为真)并且新列应为 1。然后,如果这些条件在“时间”内保持为真,则新列中的值更改为 2。如果 current 超出 0,则新列应返回 0 并再次开始查找 current == 0 和 active == 1。

非常感谢任何帮助或建议。

4

0 回答 0