Обновить столбец данных на основе значения счетчика группировкиPython

Программы на Python
Anonymous
Обновить столбец данных на основе значения счетчика группировки

Сообщение Anonymous »

Столкнулся с препятствием и, следовательно, обратился к более широкому сообществу.
У меня есть входной фрейм данных с идентификатором сотрудника и идентификатором отдела.
Сначала Мне нужно получить группу по количеству для каждого DeptID .
Затем я хочу агрегировать все записи, где количество меньше 10, и заменить deptID первыми тремя буквами с суффиксом _merged и добавьте их к счетчику этого объединенного DeptID .
Я могу выполнить первую половину, но нахожусь в тупике со второй половиной.
Позже мне также может потребоваться применить жесткое ограничение на количество идентификаторов объединенных отделов, т.е. не превышать, скажем, 100.
Входной кадр данных:
EmpID DeptID

8959236 YTCD
8597697 YTCZ
9312115 YTCD
2931213 YTCQ
9312197 QCVZ
4912748 YKKC
5474785 QCIO
1575364 MLQD
1575878 PCJZ
2915764 QCIO

Получить совокупное количество по идентификатору отдела:
agg_count_by_DeptID = df.groupby("DeptID")["DeptID"].count()

agg_count_by_DeptID серии pandas:
YTCD 20
YTCZ 2
YTCQ 4
YTCL 1
QCVZ 25
YKKC 11
QCIO 6
MLQD 9
PCJZ 7
QCIK 2

Логика вывода
Итерация по серии панд,
  • Сначала получите все элементы, которые имеют общие первые три символа идентификатора отдела, например
    YTCD, YTCZ, YTCQ и ​​YTCL.
  • Сортируйте их в порядке возрастания (не обязательно, но полезно). иметь)
  • Затем проверьте счетчик и,

    если счетчик больше 10, оставьте его.
  • если count меньше 10, замените на FIRST-3-CHARS_merged
[*] Наконец, обновите фрейм входных данных новым deptID

ожидаемой серией выходных панд:
YTCD 20
YTC_merged 7
QCVZ 25
YKKC 11
QCI_merged 8
MLQ_merged 9
PCJ_merged 7

Примечание: как значения YTCZ, YTCQ и ​​YTCL суммировались с YTC_merged, поскольку все они были меньше 10, тогда как YTCD оставляли как есть
Примечание. p>
Кадр выходных данных:
EmpID DeptID

8959236 YTCD
8597697 YTC_merged
9312115 YTCD
2931213 YTC_merged
9312197 QCVZ
4912748 YKKC
5474785 QCI_merged
1575364 MLQ_merged
1575878 PCJ_merged
2915764 QCI_merged


Подробнее здесь: https://stackoverflow.com/questions/790 ... ount-value

Вернуться в «Python»