熊猫分组依据以查找分类字段的平均计数



使用熊猫数据帧,尝试获取一个字段的平均计数,并将其分组到另一个字段。我有以下数据帧

user_id    tag_number
----------------------
1             xx
1             xx
1             xy
2             xy
2             zz
2             zz
2             zz

我正在尝试获取按user_id分组的每个唯一tag_number的平均tag_number计数。我可以做data.groupby(["user_id", "tag_number"]).size()以获得以下结果

user_id  tag_number
-------------------------
1        xx            2
xy            1
2        xy            1
zz            3

但我正在寻找的是

user_id   avg_tag_number_count
------------------------------
1          1.5
2          2.0

因为对于用户 1,在 3 个唯一tag_numbers之间总共有 2 个tag_number实例。对于用户 2,在 2 个唯一tag_numbers之间总共有 4 个tag_number实例。

你需要这个:

data.groupby(["user_id", "tag_number"]).size().groupby(level=0).mean().reset_index().rename(columns={0: 'avg_tag_number_count'})

输出:

user_id  avg_tag_number_count
0        1                   1.5
1        2                   2.0

最新更新