我正在使用一個看起來像這樣的 Billboard-Charts 資料集:

我想撰寫一個接收任意數量的藝術家作為引數的函式。從這些藝術家中,我想確定誰的歌曲在排行榜上的時間最長。我已經設法撰寫了我想要的功能,但有一件事我想不通:
我怎樣才能得到排行榜中最長的歌曲的名稱?在使用 .size() 函式后,我只是不知道如何訪問組名。
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)
作為我想要的輸出('Queen','Bohemian Rapsody',44)
uj5u.com熱心網友回復:
您可以使用 訪問最大行.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://www.uj5u.com/gongcheng/424862.html
標籤:Python 熊猫 功能 熊猫-groupby
上一篇:我不太了解以下函式的輸出
下一篇:如何在VBA中使用索引和匹配功能
