首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pandas groupby和find most Frequency值(模式)

pandas groupby和find most Frequency值(模式)
EN

Stack Overflow用户
提问于 2021-11-09 16:54:20
回答 2查看 70关注 0票数 1

我有一个数据框,看起来像这样

代码语言:javascript
复制
user_id product_id  created_at
    1   100         2019-04-21 20:20:00
    1   100         2019-04-23 00:10:00
    1   200         2019-05-24 10:00:00
    1   200         2020-06-24 10:10:24
    2   100         2019-01-22 21:10:00
    2   200         2019-04-25 20:23:30
    2   300         2021-01-21 10:20:00
    3   400         2019-12-21 10:20:00
    3   400         2021-04-21 10:20:00

我正在试着为每个user_id找出购买最多的product_id。我知道我可以结合使用groupby和value_countspd.Series.mode来实现这一点。如下所示:

代码语言:javascript
复制
df.groupby(['user_id'])['product_id',].apply(lambda x: x.value_counts().index[0]).reset_index()

这可以很好地工作,直到我得到一个拥有两个或更多具有相同计数的product_iduser_id (就像在示例数据帧中一样)。当发生这种情况时,理想情况下,我希望选择具有最新created_atproduct_id。因此,对于例如。对于user_id 1,我想选择product_id 200,因为它是最近购买的。

实现这一目标的最佳方式是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-09 17:01:13

您可以计算日期的countmax,然后对这些值进行排序并删除重复项(或使用groupby().head()):

代码语言:javascript
复制
s = df.groupby(['user_id','product_id'])['created_at'].agg(['count','max'])
s.sort_values(['count','max'], ascending=False).groupby('user_id').head(1)

输出:

代码语言:javascript
复制
                    count                  max
user_id product_id                            
3       400             2  2021-04-21 10:20:00
1       200             2  2020-06-24 10:10:24
2       300             1  2021-01-21 10:20:00
票数 2
EN

Stack Overflow用户

发布于 2021-11-09 17:18:40

代码语言:javascript
复制
df.\
sort_values("created_at", ascending=False).\
groupby(["user_id", "product_id"], sort=False, as_index=False).\
count().\
groupby("user_id", as_index=False).\
head(1)
代码语言:javascript
复制
#   user_id  product_id  created_at
# 0       1         200           2
# 1       2         300           1
# 2       3         400           2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69902065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档