我有一个看起来像这样的数据框。
id YearReleased Artist count168 2015 Muse 1169 2015 Rihanna 3170 2015 Taylor Swift 2171 2016 Jennifer Lopez 1172 2016 Rihanna 3173 2016 Underworld 1174 2017 Coldplay 1175 2017 Ed Sheeran 2
我想获得每年的最高人数,然后获得相应的艺术家姓名。

像这样的东西:

年发行艺术家

2015蕾哈娜(Rihanna)
2016蕾哈娜(Rihanna)
2017埃德·希兰(Ed Sheeran)

我尝试使用循环遍历数据框的行,并创建另一个字典,键为年份,值为艺术家。但是,当我尝试将该字典转换为数据框时,键将映射到列而不是行。

有人可以指导我有一种更好的方法,而不必遍历数据框,而是使用一些内置的pandas方法来实现这一目标吗?

最佳答案

idxmax

df.loc[df.groupby('YearReleased')['count'].idxmax()]
Out[445]:
    id  YearReleased     Artist  count
1  169          2015    Rihanna      3
4  172          2016    Rihanna      3
7  175          2017  EdSheeran      2

关于python - 在DataFrame.groupby的情况下,如何基于另一列的最大值获取列的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49263437/

10-10 08:13