python - 如何让 continue 语句进入最外层循环?
问题描述
我有一些代码,我想在其中比较两个列表之间的值 -time_stamp_x
和time_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 个值?如何安排我的break
和continue
语句来完成此操作,例如Label
填充列中的每个值?
解决方案
推荐阅读
- python - 为什么在训练期间只设置零偏差?
- php - 没有这样的外部帐户,我的 Stripe Payout 无法使用 php?
- spring-annotations - @AllArgsConstructor 和 @NoArgsConstructor 的错误“EnquiryForm 类型中的重复方法 EnquiryForm()”
- python - 如何在 Python 中创建或删除文件时使用看门狗进行监控
- jquery - 列表上的嵌套点击事件正在拨打多个电话
- python - 字符串中的 Python 字符匹配
- python - 如何根据日期列总结python中tablewidget的所有价格?
- sql - 如何使用 ViewModel 构建控制器
- delphi - 通过Delphi带参数执行tregsvr.exe
- r - 循环时使用 group_by 汇总数据