抱歉,如果这是重复的,但我找不到解决问题的任何方法。
我正在遍历许多日期,并且我想摆脱日期不在序列中的日期:
days = []
new_rows = []
for row in df.iterrows():
date = row[1][0]
date_init_input = date.replace("-", " ")
date_num = datetime.datetime.strptime(date_init_input, '%Y %m %d').weekday()
counter = 0
if len(days) == 5:
for day in days:
if day == counter:
print("Correct sequence " + new_rows[counter][1][0] + " " + findDay(new_rows[counter][1][0]))
counter += 1
if day == 4:
days.clear()
new_rows.clear()
else:
print("No sequence " + new_rows[counter][1][0] + " " + findDay(new_rows[counter][1][0]))
modDf = df.drop(new_rows[counter][0])
days.clear()
new_rows.clear()
else:
print("No sequence " + date + " " + findDay(date) + " BBBBBBBBBBB")
days.append(date_num)
new_rows.append(row)
这里的问题是循环仅向前移动五个索引,这意味着两次检查之间的任何顺序都会丢失。
简化问题
可以说我有一个像这样的数组:
[0, 1, 2, 3, 4, 0, 1, 2, 4, 0, 0, 1, 2, 3, 4]
我想删除数字不是特定长度5序列的一部分的地方。我希望我的数组看起来像这样:
[0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
如果您想进一步说明,请询问:)
这是我最终使用的方法,我认为这是一种无效的方法,但是它可以工作:
array = [1, 2, 3, 4, 5, 1, 2, 2, 1, 2, 3, 4, 5]
pattern = [1, 2, 3, 4, 5]
end = 5
start = 0
for i in array:
new_array = array[start:end]
if new_array == pattern:
print(str(new_array) + " Correct")
else:
print(str(new_array) + " False")
end += 1
start += 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句