Как подсчитать количество строк, которые следуют условию в двух столбцах в пандах, используя Groupby - PullRequest
0 голосов
/ 15 мая 2019

У меня есть фрейм данных с несколькими столбцами, 4 из которых car, company_name, id и status.Каждый car имеет ассоциированные company_name и status, а каждый company_name связан с уникальным ID.Одним из возможных состояний является Rented, и я пытаюсь подсчитать количество Rented автомобилей для каждой компании (в новом столбце под названием # Rented Cars), и я пытаюсь использовать их уникальные идентификаторы для этого.

Я попытался использовать groupby и применить, но безуспешно.

df['# of Rented Cars'] = df.groupBy('unique_id')['status'].apply(lambda x: (x=='Rented').sum())

Используя в качестве примера следующую таблицу, вы можете увидеть нужные значения в столбце # арендуемых автомобилей:

table

Но используя приведенный выше код, я просто получаю значение Nan для всех значений в последнем столбце.

1 Ответ

2 голосов
/ 15 мая 2019

Я думаю, что вы ищете transform

df['# of Rented Cars'] = df.groupBy('unique_id')['status'].transform(lambda x: (x=='Rented').sum())

или без lambda

df['# of Rented Cars'] = df['status'].eq('Rented').groupBy(df['unique_id']).transform('sum')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...