基于Python中下一行的阈值的新列

基于Python中下一行的阈值的新列,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个pandas dataframe列,如下所示: col1 200 300 400 200 500 700 0 0 60 0 0 我正在尝试创建一个新列,该列是根据当前行值确定的,但也要考虑接下来的几行值。例如,如果(第1列(i)>60)和(第1列(i+1)+第1列(i+2)+第1列(i+3))>100,则在第2列中填写“是” col1 col2 200 yes 300

我有一个pandas dataframe列,如下所示:

col1
200    
300    
400    
200    
500    
700    
0      
0      
60     
0      
0      
我正在尝试创建一个新列,该列是根据当前行值确定的,但也要考虑接下来的几行值。例如,如果(第1列(i)>60)和(第1列(i+1)+第1列(i+2)+第1列(i+3))>100,则在第2列中填写“是”

col1   col2
200    yes
300    yes
400    yes
200    yes
500    yes
700    yes
0      no
0      no
60     no
0      no
0      no

关于如何实现这一点有什么想法吗?

您可以使用
.shift()
方法在数据帧中处理这一点。请参考此示例

这里有一种方法使用
zip
list

l1 = df['col1'].tolist()
l2 = []
for a,b,c,d in zip(l1,l1[1:],l1[2:],l1[3:]):
   if a>60 & (b+c+d)>100:
      l2 += ['yes']
   else:
      l2 += ['no']
l2 += ['','',''] # cater for the last 3 entries. I've left it blank, you can decide whether to go for 'yes' or 'no' or 'NA'
df['col2']= pd.Series(l2)

这对我的分析很有帮助!它有点通用,所以我可以很容易地将它应用到其他场景中。非常感谢。