我有以下 DataFrame 由列 id、brand 和 count 组成
Id brand count
1 Audi 3
2 BWM 5
2 FORD 3
3 AUDI 7
4 BMW 2
5 Audi 4
5 FORD 3
我想对 id 进行分组,并且只保留每个 id 与具有最高计数的品牌。
所以最后我想有以下几点:
id brand
1 AUDI
2 BMW
3 AUDI
4 BMW
5 AUDI
我有这样的事情,但这显然不起作用。那么实现这一目标的正确函数或语法是什么?谢谢!
data.groupby('id')['brand'].where(max('count'))
最佳答案
IIUC 使用 groupby.idxmax
和 loc
:
df.loc[df.groupby('Id')['count'].idxmax()]
[出去]
Id brand count
0 1 Audi 3
1 2 BWM 5
3 3 AUDI 7
4 4 BMW 2
5 5 Audi 4
关于python - groupby 并根据另一列的值保留一列的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60601337/