Подсчитать количество элементов в столбце больше x, но меньше y - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь подсчитать количество элементов в столбце '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 ]

0 голосов
/ 23 ноября 2018
a= df['xyz'] 
df[(a < 2/3) & (a > 1/3)].count()
0 голосов
/ 23 ноября 2018

Подмножество вашего фрейма данных не обязательно.Суммируйте логическую серию:

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

Связанные сравнения, такие как x < a < y, работают с обычными скалярами Python, а не с объектами Pandas, которые требуют векторизованных операций.

0 голосов
/ 23 ноября 2018

это даст вам df, где это правда:

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

затем:

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

или просто:

  sum(mask)
...