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

我想要写一个函数,接收任意数量的艺术家作为参数。从这些艺术家,我想确定谁的歌曲一直在图表中最长。我已经成功地编写了我想要的函数,但有一件事我无法理解:
我怎样才能知道这首歌的名字,这首歌在“图表”中是最长的?我只是不知道如何在使用.size()函数之后访问groupname。
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岁)
发布于 2022-02-16 00:20:13
您可以使用.idxmax()访问最大行。
然后,您应该能够选择该行,并通过以下更改访问该行中的值。注意,我使用.reset_index()将groupby索引设置为列。
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)https://stackoverflow.com/questions/71134845
复制相似问题