我的数据框看起来像这样。
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
我想获得每年的最大数量,然后获得相应的艺术家名称。
这样的事情:
YearReleased Artist
2015 Rihanna
2016蕾哈娜
2017 Ed Sheeran
我尝试使用循环迭代数据帧的行并创建另一个字典,其中键作为年份,值作为艺术家。但是当我尝试将该字典转换为数据帧时,键被映射到列而不是行。
有人可以指导我更好地解决这个问题而不必遍历数据框,而是使用一些内置的pandas方法来实现这一目标吗?
答案 0 :(得分:1)
idx = df.groupby(['YearReleased'])['count'].transform(max) == df['count']
然后使用此索引器:
df[idx]
Out[14]:
id YearReleased Artist count
1 169 2015 Rihanna 3
4 172 2016 Rihanna 3
7 175 2017 Ed Sheeran 2
答案 1 :(得分:0)
查看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