Python фильтр повторяющихся строк с условием - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть таблица, которая выглядит следующим образом

Date           Col0          Col1            Col2   
2-18-2019       1            ap sd            23
2-18-2019       2            dh au            88
2-18-2019       3            ap hre           92
2-19-2019       1            sd ap            23
2-19-2019       2            sd ap            78
2-19-2019       3            ap sd            78
2-20-2019       1            ap sd            37
2-20-2019       2            sd ap            29
2-20-2019       3            djd dh           34
2-21-2019       1            eds ed           44
2-21-2019       2            u4r rg           34
2-21-2019       3            ufif ew          23
2-22-2019       1            eds sd           44
2-22-2019       2            u4r rg           34
2-22-2019       3            ap ew            23

Мне нужно отфильтровать последнюю строку по ключевым словам, если они повторялись в течение нескольких дней, поэтому, если несколько дней спустя ключевые слова были повторены, мне нужно включить их так же, как в таблице результатов ниже.

результат, который я ищу, должен выглядеть примерно так

Date           Col0          Col1            Col2   
2-19-2019       3            ap sd            78
2-20-2019       1            ap sd            37
2-20-2019       2            sd ap            29
2-22-2019       1            eds sd           44
2-22-2019       3            ap ew            23

Я пробовал это

df = df[(Col1.str.contains('ap')) | (Col1.str.contains('sd'))]

, но это дало бы мне этот результат

Date           Col0          Col1            Col2   
2-18-2019       1            ap sd            23
2-19-2019       1            sd ap            23
2-19-2019       2            sd ap            78
2-19-2019       3            ap sd            78
2-20-2019       1            ap sd            37
2-20-2019       2            sd ap            29
2-22-2019       1            eds sd           44
2-22-2019       3            ap ew            23

И это неправильно, так как он возвращает все. разница между результатом, который я имею, и желаемым ниже, состоит в том, что если условие не было выполнено в течение одного дня (столбец даты) или более, то это снова показывает, что мне нужно повторить процесс

Date           Col0          Col1            Col2   
2-19-2019       3            ap sd            78
2-20-2019       1            ap sd            37
2-20-2019       2            sd ap            29
2-22-2019       1            eds sd           44
2-22-2019       3            ap ew            23

Спасибо

1 Ответ

0 голосов
/ 15 апреля 2020

IIU C использование:

df = df[df.Col1.str.contains('ap|sd')].drop_duplicates('Col1', keep='last')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...