сгруппировать и скрыть информацию одного столбца на основе значения другого столбца - PullRequest
4 голосов
/ 09 марта 2020

У меня есть следующий 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  brand
1   AUDI
2   BMW
3   AUDI
4   BMW
5   AUDI

У меня есть что-то подобное, но это, очевидно, не работает. Так что же будет правильной функцией или синтаксисом для выполнения sh этого? Спасибо!

data.groupby('id')['brand'].where(max('count'))

Ответы [ 2 ]

3 голосов
/ 09 марта 2020

IIU C использование groupby.idxmax и loc:

df.loc[df.groupby('Id')['count'].idxmax()]

[out]

   Id brand  count
0   1  Audi      3
1   2   BWM      5
3   3  AUDI      7
4   4   BMW      2
5   5  Audi      4
1 голос
/ 09 марта 2020

IIU C

df=df.sort_values(['Id','count']).drop_duplicates('Id',keep='last')
Out[249]: 
   Id brand  count
0   1  Audi      3
1   2   BWM      5
3   3  AUDI      7
4   4   BMW      2
5   5  Audi      4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...