【发布时间】:2020-09-21 12:17:23
【问题描述】:
我正在开发一个脚本来检查数据框的列的总和是否在一定间隔内超过三。
loc_number = 10 # start loc image number with 10
k = 2
while k < 3:
for i in range(0, int(len(target_df.index)/loc_number), loc_number):
print(range(0, int(len(target_df.index)/loc_number), loc_number))
print(loc_number, i)
loc_target_df = target_df.loc[i: i+loc_number].sum(skipna=True, axis=0)
print(loc_target_df)
if any(x < 3 for x in loc_target_df):
loc_number += 1
print('heloo')
break
else:
print('here')
pass
print('probably')
continue
好像一开始,它转到'if'并打印出'heloo'一段时间,这意味着某个列的值的总和不超过3。好的。这就是我想要的。
但是,当它转到else时,这意味着cloumn的总和超过3,它应该转到下一个'for循环'而不是'while'。但它一次又一次地进入while循环,所以打印出来是这样的:
here
probablay
range(0, 14, 322)
322 0
10.000000 272
26.400000 210
31.680000 106
38.016000 113
45.619200 215
54.743040 146
65.691648 224
78.829978 255
94.595973 321
113.515168 308
136.218201 356
163.461842 270
196.154210 190
235.385052 97
282.462062 47
338.954475 32
406.745370 6
488.094443 3
dtype: int64
here
probablay
range(0, 14, 322)
322 0
10.000000 272
26.400000 210
31.680000 106
38.016000 113
45.619200 215
54.743040 146
65.691648 224
78.829978 255
94.595973 321
113.515168 308
136.218201 356
163.461842 270
196.154210 190
235.385052 97
282.462062 47
338.954475 32
406.745370 6
488.094443 3
dtype: int64
here
probablay
range(0, 14, 322)
322 0
10.000000 272
26.400000 210
31.680000 106
38.016000 113
45.619200 215
54.743040 146
65.691648 224
78.829978 255
94.595973 321
113.515168 308
136.218201 356
163.461842 270
196.154210 190
235.385052 97
282.462062 47
338.954475 32
406.745370 6
488.094443 3
dtype: int64
here
probablay
range(0, 14, 322)
322 0
我的 while for 循环有什么问题?以及如何使 for 循环工作?
【问题讨论】:
-
您不会在 while 循环内的任何地方更改
k -
你想做什么?
-
@Jasmijn 我想做的是在 else 条件下继续运行'for循环'。
-
这已经发生了。你甚至不需要那里的
pass,因为它实际上什么都不做。
标签: python for-loop while-loop break continue