如何处理不支持的操作数类型



有列表:

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

最新更新