我有一个看起来像这样的数据框。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/