首页 > 解决方案 > 如何让 continue 语句进入最外层循环?

问题描述

我有一些代码,我想在其中比较两个列表之间的值 -time_stamp_xtime_stamp_y. 如果 的值time_stamp_x小于等于 的值time_stamp_y,那么我想跳转到条件代码(labels_for_x.append(labels[i])),如下图。但是,如果 的值time_stamp_x大于 的值time_stamp_y,我想跳转到 的下一个值time_stamp_y并将该值与 的值进行比较,time_stamp_x依此类推。

def combine_frames(x_frame, y_frame):
    # Change each dataframe column to a list for iterations
    labels = y_frame['Label'].tolist()
    time_stamp_y = y_frame['Time stamp'].tolist()
    time_stamp_x = x_frame['Time stamp'].tolist()
    
    labels_for_x = [] # Create empty list to gather corresponding labels for x_frame
    for i in range(0, len(time_stamp_y)):
        for time in time_stamp_x:
            if time <= time_stamp_y[i]:
                labels_for_x.append(labels[i])
            # End IF
            break
        # End FOR
        continue
    # End FOR
    
    # Concatenate the dataframes
    label_df = pd.DataFrame(labels_for_x, columns = ['Label']) # Convert list back to data frame
    combined_frame = pd.concat([x_frame, label_df], axis = 1)
    return combined_frame

此外,我应该注意labels_for_x应该具有相同的长度time_stamp_x(这些长度为 37890),并且labels具有相同的长度time_stamp_y(这些长度为 9473)。最终,代码应该生成一个连接的数据帧。 当前数据帧输出

添加第 9473 个值(索引为 9472,此处未显示)后,其余值为 NaN。然而,这些也应该被填充。为什么我最多只能添加 9473 个值,而不是 37890 个值?如何安排我的breakcontinue语句来完成此操作,例如Label填充列中的每个值?

标签: pythonpandasdataframenested-loopsbreak

解决方案


推荐阅读