подсчитать идентификатор, который меньше определенного значения - PullRequest
1 голос
/ 27 мая 2020

Мои данные состоят из уникальных идентификаторов с определенным расстоянием до точки. Цель состоит в том, чтобы подсчитать идентификатор, который равен или меньше радиуса.

В следующем примере показан мой DataFrame:

id    distance  radius
111   0.5       1
111   2         1
111   1         1
222   1         2
222   3         2
333   5         3
333   4         3

Результат должен выглядеть следующим образом:

id  count
111 2
222 1
333 0

1 Ответ

2 голосов
/ 27 мая 2020

Вы можете сделать:

df['distance'].le(df['radius']).groupby(df['id']).sum()

Вывод:

id
111    2.0
222    1.0
333    0.0
dtype: float64

Или вы можете:

(df.loc[df.distance <= df.radius, 'id']
   .value_counts()
   .reindex(df['id'].unique(), fill_value=0)
)

Вывод:

111    2
222    1
333    0
Name: id, dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...