Удаление строк со значениями, превышающими минимальное значение всех строк с одинаковым идентификатором, с помощью Pandas - PullRequest
0 голосов
/ 26 декабря 2018

Итак, у меня есть следующий фрейм данных:

        id    value
  0     a       1
  1     a       1
  2     a       2
  3     b       3
  4     b       3

Например, для строк с идентификатором 'a' минимальное значение равно 1, а для идентификатора 'b' минимальное значение равно 3, поэтомустроки не будут удалены.

Вывод:

        id    value
  0     a       1
  1     a       1
  2     b       3
  3     b       3

До сих пор я только сгруппировал строки с одинаковым идентификатором и нашел их самые низкие значения, но не смог найти способ удалитьвсе ожидаемые строки.Я использовал следующую команду:

min_values = df.loc[df.groupby(['id'])['value'].idxmin()]['value']

1 Ответ

0 голосов
/ 26 декабря 2018

Использование transform (idxmin: вернет только первый индекс минимального значения, в вашем случае у вас есть дубликаты, поэтому он не вернет весь индекс)

df[df.value==df.groupby('id').value.transform('min')]
Out[257]: 
  id  value
0  a      1
1  a      1
3  b      3
4  b      3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...