vaex фильтрует и связывает фрейм данных, используя маску из серии пыльников

#python #dataframe #vaex

Вопрос:

У меня есть большой файл со стрелками с 14 миллионами строк. В своем приложении я выбираю два столбца и связываю их с помощью функции count/binby в Vaex.

 df.count(
  binby=axes,
  limits=limits,
  shape=(binnum,)*len(axes),
  delay=True
)
 

Некоторые из моих столбцов действуют как маска и имеют либо 0, либо 1. Вот пример

 #   x    y    mask
1   1.5  4.7  0
2   0.3  2.3  1
3   2.6  9.4  1
4   5.0  3.7  0
 

Я хочу связать точки на осях x и y, которые имеют только 1 в столбце маска. Как мне это сделать?

Комментарии:

1. Сработает ли что-то подобное df.count(..., selection="mask==1") ?

2. нет, это ошибка, которая существует и задокументирована здесь

3. Ах, конечно, но в этом вопросе есть больше деталей, чем в посте ОП здесь, связанных с методами гео, я полагаю. Без гео-материала ваш пример, как указано выше, должен сработать, я думаю.

Ответ №1:

Предполагая, что маска находится в одном и том же кадре данных, использование selection kwarg должно работать:

 import vaex

df = vaex.example()

df.count(binby=['x', 'y'], shape=(10,10), selection="id==0")