Как добавить столбец, чтобы вычислить, есть ли хотя бы одна запись? - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть фрейм данных 'df', подобный этому:

   user_id  record
0        a      No
1        a      No
2        a     Yes
3        b      No
4        b      No
5        c     Yes
6        c     Yes

Каждая строка означает запись операции пользователя. Столбец «запись» означает, является ли операция недопустимой. Теперь я хочу добавить столбец, чтобы показать, имеет ли пользователь недопустимую операцию. Результат должен быть следующим:

   user_id  record history
0        a      No       1
1        a      No       1
2        a     Yes       1
3        b      No       0
4        b      No       0
5        c     Yes       1
6        c     Yes       1

Если у пользователя есть хотя бы 1 недопустимая операция, вся «история» должна быть равна 1. Как я могу получить это?

Ответы [ 2 ]

2 голосов
/ 16 апреля 2020

Это может быть немного быстрее, чем ваше решение:

df['history'] = df['record'].eq('Yes').groupby(df['user_id']).transform('any')
0 голосов
/ 16 апреля 2020

Я пробовал один способ.

df['history'] = df.groupby('user_id').transform(lambda x: int('Yes' in x.values))

Это может решить проблему. Но я думаю, что это не умная идея.

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