Исключить строку после сопоставления и сохранить минимальные данные - PullRequest
0 голосов
/ 10 апреля 2019

Я анализирую процесс сопоставления двух данных бренда.После анализа фрейм данных выглядит следующим образом:

df
Brand A Type A  Brand B Type B  Data 1  Data 2  Match
IDA     Type A  ID1     Type 1  3.2     403.4   Match-1
IDA     Type B  ID1     Type 2  4.1     403.4   Match-2
IDA     Type A  ID1     Type 1  1.1     56.5    Match-1
IDA     Type B  ID1     Type 2  1.4     56.5    Match-2
IDA     Type B  ID1     Type 2  0.6     220.4   Match-2
IDB     Type A  ID2     Type 1  1.0     292.3   Match-1
IDB     Type B  ID2     Type 2  0.6     292.3   Match-2
IDB     Type A  ID2     Type 1  1.5     472.6   Match-1

Я хочу исключить столбцы марки A и марки b или удалить строку dataframe, но сохранить minimum на основе столбцов данных 1 и данных 2 иmatch-1 и match-2 (должно быть, пара данных все еще существует).прости меня, если объяснение не ясно.

мой ожидаемый результат выглядит следующим образом:

Result
Brand A Type A  Brand B Type B  Data 1  Data 2  Match
IDA     Type A  ID1     Type 1  1.1     56.5    Match-1
IDA     Type B  ID1     Type 2  1.4     56.5    Match-2
IDB     Type A  ID2     Type 1  1.0     292.3   Match-1
IDB     Type B  ID2     Type 2  0.6     292.3   Match-2

спасибо

1 Ответ

1 голос
/ 10 апреля 2019

Вы можете использовать sort_value, затем drop_duplicates

yourdf = df.sort_values(['Data 2','Data 1']).drop_duplicates(['Brand A', 'Type A',  'Brand B', 'Type B'] )

Выход

df.sort_values(['Data 2','Data 1']).drop_duplicates(['Brand A', 'Type A',  'Brand B', 'Type B'] ).sort_index()

  BrandA  TypeA BrandB  TypeB  Data1  Data2    Match
2    IDA  TypeA    ID1  Type1    1.1   56.5  Match-1
3    IDA  TypeB    ID1  Type2    1.4   56.5  Match-2
5    IDB  TypeA    ID2  Type1    1.0  292.3  Match-1
6    IDB  TypeB    ID2  Type2    0.6  292.3  Match-2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...