这里有一个简单的算法来解决你的问题
import pandas as pd
A=[6,12,21,15,18,19,13,9,10,50]
cond1=[False,True,False,False,False,False,True,False,False,False]
cond2=[False,False,False,True,False,False,False,False,True,False]
result=[]
numbers =[]
index=0
for i in A:
result.append("")
minimum=None;
while index<len(A):
if (cond1[index]):
while(not(cond2[index])):
numbers.append(A[index])
if (minimum != None):
result[index]=minimum
index += 1
minimum = min(numbers)
result[index]=minimum
numbers=[]
if(i==index):
index+=1
else:
if (minimum != None):
result[index]=minimum
index+=1
df=pd.DataFrame({'A':A,'start':cond1,'end':cond2,'result':result})
print(df)
输出
A start end result
0 6 False False
1 12 True False
2 21 False False
3 15 False True 12
4 18 False False 12
5 19 False False 12
6 13 True False 12
7 9 False False 12
8 10 False True 9
9 50 False False 9
希望这能帮助你达到预期的效果。