根据python中的count和unique count添加列

问题描述 投票:1回答:1

我有一个如下所示的数据帧。

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'中存在的金额的总和

python pandas
1个回答
3
投票

使用带有元组列表的DataFrameGroupBy.agg - 第一个值指定新的列名和第二个聚合函数,这里是sizenunique

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
© www.soinside.com 2019 - 2024. All rights reserved.