在 DataFrame.groupby 的情况下,如何根据另一列的最大值获取一列的值

2023-11-27

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

id YearReleased Artist count 168 2015 Muse 1 169 2015 Rihanna 3 170 2015 Taylor Swift 2 171 2016 Jennifer Lopez 1 172 2016 Rihanna 3 173 2016 Underworld 1 174 2017 Coldplay 1 175 2017 Ed Sheeran 2

我想获取每年的最大计数,然后获取相应的艺术家姓名。

像这样的东西:

年份发行艺人

2015 蕾哈娜
2016 蕾哈娜
2017 艾德·希兰

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

有人可以指导我有一个更好的方法来实现这一点,而不必循环数据帧,而是使用一些内置的 pandas 方法来实现这一点吗?


Look at 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 DataFrame.groupby 的情况下,如何根据另一列的最大值获取一列的值 的相关文章