Получение только дублированных столбцов с наименьшим значением - PullRequest
0 голосов
/ 18 октября 2018

У меня есть датафрейм с 2 столбцами: value и product.Будут продублированы продукты, но с разными значениями.То, что я хочу сделать, это получить все продукты, но удалить любое дублирование.Условием удаления дублирования будет получение строки с наименьшим значением и удаление остальных.Например, я хочу что-то вроде этого:

До:

product  value
A        25
B        45
C        15
C        14 
C        13
B        22

После

product  value
A        25
B        22
C        13

Как сделать так, чтобы получались только дублированные столбцы с наименьшими значениямидобавлено в новый фрейм данных?

Ответы [ 3 ]

0 голосов
/ 18 октября 2018

Вы можете sort_values, а затем drop_duplicates:

res = df.sort_values('values').drop_duplicates('product')
0 голосов
/ 18 октября 2018

При выполнении требования, которое я вижу, даже вам не нужно использовать drop.duplicate и sort_values, так как мы ищем минимальное минимальное значение каждого столбца product в dataFrame.Итак, есть несколько способов сделать это следующим образом ...

Я полагаю, что одним из коротких способов будет просмотр уникального индекса с помощью pandas.DataFrame.idxmin.

>>> df
  product  value
0       A     25
1       B     45
2       C     15
3       C     14
4       C     13
5       B     22

>>> df.loc[df.groupby('product')['value'].idxmin()]
  product  value
0       A     25
5       B     22
4       C     13

ИЛИ

В этом случае другой кратчайший и элегантный способ использования Compute min of group values с использованием groupby.min():

>>> df
  product  value
0       A     25
1       B     45
2       C     15
3       C     14
4       C     13
5       B     22

>>> df.groupby('product').min()
         value
product
A           25
B           22
C           13
0 голосов
/ 18 октября 2018
df.sort_values('value').groupby('product').first()
#         value
#product       
#A           25
#B           22
#C           13
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...