Python Pandas Значения количества кадров данных одного столбца на основе другого - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь подсчитать значения одного столбца на основе значений другого. Скажем, например, у вас есть 3 столбца: User ID, Status и Status_counts. Идентификатор пользователя - это уникальный идентификатор для каждого человека, Статус либо говорит о завершении, либо не завершен, затем счетчики статуса показывают, сколько раз отображается полное или неполное отображение для указанного c идентификатора пользователя. Пример таблицы ниже:

User ID| Status            Status counts
1     | Complete.     |   12
1     | Not complete. |   11

Я хочу добавить к этому два столбца. В одном столбце я хочу, чтобы количество появлений завершенных (12 в моем примере выше) было разделено на сумму завершенных и незавершенных для указанного пользователя c. Таким образом, этот столбец будет смотреть на идентификатор пользователя (здесь это было бы так, как если бы идентификатор пользователя = 1), складывал его счетчики статуса (здесь 12 + 11), а затем создавал столбец, который принимает счетчики статуса только для завершения (12 здесь) и разделите сумму статусов (12 +11), чтобы получилось (12/11 + 12). Затем я хочу сделать это не полностью (11/12 + 11). Я хочу сделать это для множества разных идентификаторов пользователей. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 18 июня 2020
df = pd.DataFrame({'UserID':[1,1],'Status':['complete','not complete'],'Count':[12,11]})

def helper(data):
    num= data[data['Status']=='complete']['Count']
    denum = int(data[data['Status']=='not complete']['Count']) + int(data[data['Status']=='complete']['Count'] )
    return  num / denum

df.groupby('UserID').apply(helper)

Это даст следующий результат:

Count   0
UserID
1     .521739
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...