Объединить два кадра данных и удалить дублирующиеся строки в зависимости от условия - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь объединить два кадра данных, и в случае дублирования я хотел бы рассмотреть строку, имеющую максимальное значение для столбца. Я попытался выполнить эту команду:

df = pd.concat([df1, df2]).max(level=0)

Так что, если две строки имеютто же самое значение для столбцов A и B, я просто возьму эту строку с максимальным значением для столбца C.

1 Ответ

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

Вы можете отсортировать по столбцу C, а затем отбросить дубликаты по столбцам A и B:

df = pd.concat([df1, df2])\
       .sort_values('C')\
       .drop_duplicates(subset=['A', 'B'], keep='last')

Ваша попытка имеет несколько недоразумений:

  1. pd.DataFrame.max используется для расчета максимальных значений, а не для фильтрации кадра данных.
  2. Параметр level имеет значение только для MultiIndex данных.
...