#pandas
Вопрос:
У меня есть df, который выглядит так с дубликатом удостоверения личности
ID Usage_type
0 5 Note
1 6 Note
2 7 Service
3 5 Note
4 7 Note
5 10 Service
Мне нужны дополнительные два столбца, которые указывают совокупное количество usage_type для каждого идентификатора, например:
ID Usage_type type_Note type_Service
0 5 Note 1 0
1 6 Note 1 0
2 7 Service 0 1
3 5 Note 2 0
4 7 Note 1 1
5 10 Service 0 1
У меня есть код, который подсчитывает общее количество значений для столбца Usage_type для каждого идентификатора, но хочет разделить два типа
Ответ №1:
Давайте попробуем get_dummies
и groupby
с cumsum
df = df.join(df.Usage_type.str.get_dummies().groupby(df.ID).cumsum())
df
Out[80]:
ID Usage_type Note Service
0 5 Note 1 0
1 6 Note 1 0
2 7 Service 0 1
3 5 Note 2 0
4 7 Note 1 1
5 10 Service 0 1
Комментарии:
1. Я попробовал ваше решение, но получил синтаксическую ошибку. Хотя я не уверен, где это находится