首页 文章

计算列中大于x但小于y的元素数

提问于
浏览
1

我试图计算列 'xyz' 中小于 x 但大于 y 的元素数量 .

a= df['xyz'] 
df[1/3 < a < 2/3].count()

但是,这给了我:

ValueError:系列的真值是不明确的 . 使用a.empty,a.bool(),a.item(),a.any()或a.all() .

3 回答

  • 1
    a= df['xyz'] 
    df[(a < 2/3) & (a > 1/3)].count()
    
  • 1

    这将给你df它是真的:

    mask = (df['xyz'] > min) & (df['xyz'] <= max)
    df = df[mask]
    

    然后:

    len(df) or df.count() or df.shape[0]
    

    要不就:

    sum(mask)
    
  • 2

    不需要子集您的数据帧 . 只需加上一个布尔系列:

    res = df['xyz'].between(1/3, 2/3, inclusive=False).sum()
    

    链式比较(例如 x < a < y )与常规Python标量一起使用,而不是与Pandas对象一起使用,这需要向量化操作 .

相关问题