Создайте Функции подсчета правильно

#python #pandas #feature-engineering

#питон #панды #характеристика-проектирование

Вопрос:

У меня есть такой столик:

ПК пользователь Период
A U1 2020/01
A U2 2020/02
A U3 2020/03
A U4 2020/04
B U1 2020/01
B U2 2020/02
B U2 2020/03

Мне нужно создать «счетчик функций», чтобы проверить, сколько раз «КОМПЬЮТЕР» был найден и «пользователь» подключен

теперь для алгоритма машинного обучения, каков наилучший способ сделать это? или даже их комбинацию

  1. для каждой строки укажите максимальное соединение:
ПК пользователь Период Максимальное мошенничество На ПК Максимальное Количество Мошенничеств На Одного ПОЛЬЗОВАТЕЛЯ
A U1 2020/01 4 2
A U2 2020/02 4 3
A U3 2020/03 4 1
A U4 2020/04 4 1
B U1 2020/01 3 2
B U2 2020/02 3 3
B U2 2020/03 3 3
  1. для каждой строки покажите КОЛИЧЕСТВО соединений:
ПК пользователь Период Максимальное мошенничество На ПК Максимальное Количество Мошенничеств На Одного ПОЛЬЗОВАТЕЛЯ
A U1 2020/01 1 1
A U2 2020/02 2 1
A U3 2020/03 3 1
A U4 2020/04 4 1
B U1 2020/01 1 2
B U2 2020/02 2 2
B U2 2020/03 3 3

Ответ №1:

Вы можете использовать groupby тогда transform и cumcount :

 # Use lazy groups gpc = df.groupby('PC')['PC'] gus = df.groupby('USER')['Period']  df['Max Con Per PC'] = gpc.transform('size') df['Count Con Per PC'] = gpc.cumcount()   1 df['Max Con Per USER'] = gus.transform('size') df['Count Con Per USER'] = gus.cumcount()   1  

Выход:

 gt;gt;gt; df  PC USER Period Max Con Per PC Count Con Per PC Max Con Per USER Count Con Per USER 0 A U1 2020/01 4 1 2 1 1 A U2 2020/02 4 2 3 1 2 A U3 2020/03 4 3 1 1 3 A U4 2020/04 4 4 1 1 4 B U1 2020/01 3 1 2 2 5 B U2 2020/02 3 2 3 2 6 B U2 2020/03 3 3 3 3  

Комментарии:

1. спасибо, но для алгоритма машинного обучения, каков наилучший подход. сделайте комбинацию метиода?????

2. Что вы хотите сделать: классификацию или регрессию?

3. я что делать классификация спасибо !!!

4. Какова ваша целевая колонка (y)?

5. целевые столбцы «является мошенничеством» Да 1 нет 0