首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用groupby.size()后获取Groupname

使用groupby.size()后获取Groupname
EN

Stack Overflow用户
提问于 2022-02-15 23:52:52
回答 1查看 21关注 0票数 0

我使用的是公告牌-图表数据集,如下所示:

我想要写一个函数,接收任意数量的艺术家作为参数。从这些艺术家,我想确定谁的歌曲一直在图表中最长。我已经成功地编写了我想要的函数,但有一件事我无法理解:

我怎样才能知道这首歌的名字,这首歌在“图表”中是最长的?我只是不知道如何在使用.size()函数之后访问groupname。

代码语言:javascript
复制
def determine_most_popular_performer(*performers):
    results = []
    for performer in performers:
        results.append((performer, max(df.loc[df["performer"]==performer].groupby("song").size())))
        return max(results)
    
print(determine_most_popular_performer("Queen", "Prince", "Michael Jackson"))
>> ('Queen', 44)

作为输出,我想要(‘女王’,‘波希米亚拉斐迪’,44岁)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-16 00:20:13

您可以使用.idxmax()访问最大行。

然后,您应该能够选择该行,并通过以下更改访问该行中的值。注意,我使用.reset_index()将groupby索引设置为列。

代码语言:javascript
复制
def determine_most_popular_performer(*performers):
    results = []
    for performer in performers:
        df2 = df.loc[df["performer"]==performer].groupby("song").size().reset_index(name="value")
        max_id = df2["value"].idxmax()
        results.append((performer, df2.loc[max_id]["song"], df2.loc[max_id]["value"]))
        return max(results)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71134845

复制
相关文章

相似问题

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