我试图计算列 'xyz' 中小于 x 但大于 y 的元素数量 .
'xyz'
x
y
a= df['xyz'] df[1/3 < a < 2/3].count()
但是,这给了我:
ValueError:系列的真值是不明确的 . 使用a.empty,a.bool(),a.item(),a.any()或a.all() .
a= df['xyz'] df[(a < 2/3) & (a > 1/3)].count()
这将给你df它是真的:
mask = (df['xyz'] > min) & (df['xyz'] <= max) df = df[mask]
然后:
len(df) or df.count() or df.shape[0]
要不就:
sum(mask)
不需要子集您的数据帧 . 只需加上一个布尔系列:
res = df['xyz'].between(1/3, 2/3, inclusive=False).sum()
链式比较(例如 x < a < y )与常规Python标量一起使用,而不是与Pandas对象一起使用,这需要向量化操作 .
x < a < y
3 回答
这将给你df它是真的:
然后:
要不就:
不需要子集您的数据帧 . 只需加上一个布尔系列:
链式比较(例如
x < a < y
)与常规Python标量一起使用,而不是与Pandas对象一起使用,这需要向量化操作 .