有列表:
l_figure_s= [5, 9, 21, 25, 30, 34, 43]
l_figure_e= [8, 16, 24, 28, 33, 37, 46]
创建的列表:
df1 = pd.DataFrame.from_dict({'starts':l_figure_s,'ends':l_figure_e},dtype=int,orient='index').transpose()
您需要根据条件检查元素:
df1[ df1['starts']<df1['ends'] & df1['starts'].shift(-1)>=df['ends'] ]
错误发生在最后一行,我认为解释器看到了这个条件:Nan>= 46
如何排除最后一行以外的条件检查?
也许你需要一个计算器来计算df['ends'] ?
必须使用括号:
df1[(df1['starts']<df1['ends']) & (df1['starts'].shift(-1)>=df1['ends'])]
编辑:正如@mozway在注释部分所说,它被称为"操作符优先">
第1次添加()
第2次将df
改为df1
out = df1[ (df1['starts']<df1['ends']) & (df1['starts'].shift(-1)>=df1['ends']) ]
Out[410]:
starts ends
0 5 8
1 9 16
2 21 24
3 25 28
4 30 33
5 34 37