добавление столбца на основе количества и уникального числа в Python - PullRequest
0 голосов
/ 17 сентября 2018

у меня есть датафрейм, как показано ниже.

type item
new apple
new apple
new io
new io
old apple
old io
old io 
old se
old pj
etc el

мне нужно создать новый фрейм данных на основе количества и уникального количества

type    type_count  unique_item_count
new            4    2
old            5    4
etc            1    1

col 'type_count' основано на частоте меток в col'type ' col 'unique_item_count' основан на уникальном количестве меток, присутствующих в col'item, для каждой уникальной метки в col'type '

также, если я добавлю новый столбец

type    item    val
new apple       20
new apple       6
new io          5
new io          6
old apple       5
old io          6
old io          4
old se          5
old pj          3
etc el          2

и хотите новый фрейм данных с

type    type_count  unique_item_count   total_count
new             4                   2   37
old             5                   4   23
etc             1                   1   2

col 'total_count' - сумма суммы, представленной в col'val 'для каждого типа

1 Ответ

0 голосов
/ 17 сентября 2018

Использовать DataFrameGroupBy.agg со списком кортежей - первое значение указывает новое имя столбца и вторую функцию агрегирования, здесь size и nunique:

L = [('type_count','size'), ('unique_item_count','nunique')]
df = df.groupby('type', sort=False)['item'].agg(L).reset_index()
print (df)
  type  type_count  unique_item_count
0  new           4                  2
1  old           5                  4
2  etc           1                  1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...