Python 为什么我的或熊猫过滤器逻辑不起作用?

Python 为什么我的或熊猫过滤器逻辑不起作用?,python,pandas,Python,Pandas,我试图从数据帧中筛选一些值,但输出中的某些情况似乎不符合筛选规则。 逻辑上会有问题吗? 我想获取其中任一列满足条件的条目(这就是为什么我使用|而不是&) 我已经尝试过将列转换为整数 datos[ ((datos['edad'] >=21) & (datos['edad']<=68)) | ((datos['EdadCurp']) >= 21 & (datos['EdadCurp']<=68)) | ((da

我试图从数据帧中筛选一些值,但输出中的某些情况似乎不符合筛选规则。 逻辑上会有问题吗? 我想获取其中任一列满足条件的条目(这就是为什么我使用|而不是&)

我已经尝试过将列转换为整数

    datos[
       ((datos['edad'] >=21) & (datos['edad']<=68)) |
       ((datos['EdadCurp']) >= 21 & (datos['EdadCurp']<=68)) |
       ((datos['edadrfc']) >= 21 & (datos['edadrfc']<=68))
    ][["edad", "EdadCurp", "edadrfc"]].head(100)
datos[

((datos['edad']>=21)和(datos['edad']=21&(datos['EdadCurp']=21&(datos['edadrfc']我想您的过滤器中有一个输入错误。请尝试:

    datos[
       ((datos['edad'] >=21) & (datos['edad']<=68)) |
       ((datos['EdadCurp'] >= 21) & (datos['EdadCurp']<=68)) |
       ((datos['edadrfc'] >= 21) & (datos['edadrfc']<=68))
    ][["edad", "EdadCurp", "edadrfc"]].head(100)
datos[

((datos['edad']>=21)和(datos['edad']=21)和(datos['EdadCurp']=21)和(datos['edadrfc']=21&……
而不是
(datos['EdadCurp']>=21)和…
。与
edadrfc
一样,我认为您的过滤器中有一个打字错误。尝试:

    datos[
       ((datos['edad'] >=21) & (datos['edad']<=68)) |
       ((datos['EdadCurp'] >= 21) & (datos['EdadCurp']<=68)) |
       ((datos['edadrfc'] >= 21) & (datos['edadrfc']<=68))
    ][["edad", "EdadCurp", "edadrfc"]].head(100)
datos[

((datos['edad']>=21)和(datos['edad']=21)和(datos['EdadCurp']=21)和(datos['EdadCurp']=21&……
而不是
(datos['EdadCurp']>=21)和…
。与
edadrfc
相同如果您在所有列上应用相同的条件,请尝试以下方法:
df[df[“edad”,“EdadCurp”,“EdadCurp”,“edafc”]。](x,errors='compresse')。介于(21,68)之间。all(axis=1)]
。我不希望所有3列都满足条件,只是3列、2列或全部。这可以通过使用“any”而不是“all”来实现吗是的,它可以。那是我的错误。s/all/any我想你在第二和第三个条件的第一项中放错了括号。没错……谢谢。如果你在所有列上应用相同的条件,请尝试以下操作:
df[df[[“edad”,“EdadCurp”,“edadrfc”]]。apply(lambda x:pd.to_numeric(x,errors='concure')。介于(21,68)之间。全部(axis=1)]
。我不希望所有3列都满足条件,只是3、2或全部。这可以通过使用“any”而不是“all”来实现吗?是的,可以。那是我的错误。s/all/any我想你在第2和第3个条件的第一项中放错了括号。没错……谢谢。